Java中的常用类及API

String

String 中实现了Serilalizable 与 Comparable接口
Serializable: 可序列化的接口。
凡是实现此接口的类的对象就可以通过网络货本地流进行数据的传输
Comparable:凡是实现此接口的类其对象都可以比较大小
字符串常量的存储位置:字符串常量都存储在字符串常量池当中(不允许存放两个相同的常量)
字符串常量池:在不同的JDK版本中存放的位置不同
jdk7之前存放在方法区,之后存放在堆中
String类具有不可变性,为了节省内存空间
intern()方法:返回的是字符串常量池中字面量的地址
当字符串变量前有final修饰时视为常量,其值为字符串常量池中的常量的地址

concat()连接方法:不管是常量调用此方法还是变量调用,同样不管参数是常量还是变量,总之调用完此方法都返回一个新new的对象

String.toCharArray()方法:将字符串转化为char数组
String与byte数组之间的转换:
** 调用==String.getByes()==方法(使用默认字符集)

getBytes(charsetName): 使用指定的字符集
在UTF-8字符集中一个汉字占用3个字节,一个字母占用1个字节
GBK字符集中1个汉字占用2个字节
trim()方法:去除字符串前后空格
int contains(xx): 是否包含xx;
int indexOf(xx):从前往后找当前字符串xx,有则返回第一次的出现的下标,没有返回-1;
int indexOf(String dtr, int fromIndex) 从指定的索引查找
int lastIndexOf(xx):从后往前找当前字符串中的xx,如果有返回最后一次出现的下标;没有返回-1,
int lastIndexOf(String str, int fromIndex) : 从指定的索引从后往前查找
String substring(int beginIndex):返回一个新的字符串,它是此字符串从beginIndex开始截取的字符串;
String substring(int beginIndex, int endIndex) 返回一个新字符串,从beginIndex到endIndex(区间左闭右开);
char charAt(index): 返回index位置的字符
boolean startsWith(xx): 测试此字符串是否以指定的前缀开始;
boolean startsWith(String prefix, int toffset): 测试此字符串从指定索引开始的子字符串是否以指定前缀开始;
boolean endsWith(xx):测试此字符串是否以指定后缀结束;
String replace(char oldChar, char newChar) :返回一个新的字符串, 它是通过newChar替换的;
String replace(CharSequence target, CharSequence replacement) : 使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串;
String replaceAll(String regex, String replacement) : 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串;
String replaceFrist(String regex, String replacement) : 使用给定的replacement 替换此字符串匹配给定的正则表达式的第一个子字符串

StringBuffer与StringBuilder

三个类的对比:String, StringBuffer, StringBuilder:
String : 不可变的字符序列
StringBuffer:可变的字符序列,JDK1.0声明的,线程安全的,效率低;
StringBuilder:可变的字符序列:JDK5.0声明的,线程不安全的,效率高;

StringBuilder内部属性:
char[] value; 存储字符序列;
int count 实际存储的字符个数;
初始时value数组容量为16;原因是为了方便添加操作
常用API及方法
StringBuffer append(xx);提供了很多的append()方法,用于进行字符串追加的方式拼接;
StringBuffer delete(int start, int end):删除[start,end)之间的字符;
StringBuffer deleteCharAt(int index):删除[index]位置的字符
StringBuffer replace(int start, int end, String str) 替换[start,end)范围的字符序列
void setCharAt(int index, char c) 替换[index] 位置字符
char charAt(int index) 查找指定index位置上的字符
StringBuffer insert(int index, xx) 在index 位置插入xx;
StringBuffer reverse(); 翻转字符序列
void setLenth(int newlenth) :设置字符序列的长度

JDK8之前日期API的使用

System类中的currentTimeMillis(): 用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差,常用来计算时间差
两个Date类:
1.java.util.Date;
掌握两个构造器的使用,两个方法的使用;
Date date1 = new Date(); 创建一个基于当前系统时间的Date的实例
long getTime(): 获取当前时间对应的时间戳
Date = new Date(long Time) 创建一个基于指定时间戳的Date的实例

2.java.sql.Date:对应数据库中的Date;
没有空参的构造器;只能传入时间戳
java.text.SimpleDateFormat类:
是一个不与语言环境有关的方式来格式化和解析日期的具体类;
可以进行格式化:日期–>文本
可以进行解析:文本–> 日期

SimpleDateFormat sdf = new SimpleDateFormat();
Date date1 = new Date();
String strDate = std.format(date1);

String format(Date对象) 方法:格式化
Date parse():方法 :进行解析(要与格式化的格式一致才可以解析)
实参构造器可以自己指定格式

java.util.Calendar :日历类
Calendar类是一个抽象类,主要用于日期字段之间相互操作的功能;
获取Calendar类的实例的方法 : getInstance();
常用方法:
get(int field) /set(int field, xx) / add(int field, xx) /getTime() / setTime();

JDK8:新的日期时间API

本地日期时间:LocalDate、LocalDateTime、LocalDateTime类
创建对象的方法:
1.now()静态方法:

LocalDate localdate = LocalDate.now();

**2.of()静态方法:

LocalDate localdate = LocalDate.of(2021, 5, 23);//传入对应类对应的参数

瞬时 :Instant 类似于Date类
时间线上的一个瞬时点,这可能被用来记录应用程序中的事件时间戳
DateTimeFormatter 类似于SimpleDateFormat类 对LocalDate、LocalDateTime、LocalDateTime进行转化与解析;
使用自定义的格式进行转化与解析:
ofpattern()方法:

Java比较器:

引用数据类型比较大小可以考虑两种方法:1.自然排序 2.定制排序
方式一:实现Comparable接口
当前类需要重写Comparable中的抽象方法:int compareTo(Object O);
在此方法中指明如何判断当前类的对象的大小:如果返回值是0代表相等,正数表示当前对象大,负数表示当前对象小
可以多关键字进行比较
方式二:实现Comparator接口
如果一个类实现了Comparable接口,也指定了两个对象比较大小的规则,但我们
不想按照预定义的方法比较大小,同时我们又不能随意修改因为会影响其他地方的使用,或者我们使用第三方的类没有实现Comparable接口而又不方便修改代码时,这个时候我们可以实现Comparator接口,重写compare(Object O1, Object O2)方法,
同时我们可以将Comparator传递给sort方法,从而允许在排序顺序上实现精确控制

其他常用类的API:

System类:

属性(成员变量):in,out, err;
成员方法:long currentTImeMillis():返回当前的计算机时间;
void exit(): 退出程序,其中status的值为0时代表正常退出,非0代表异常退出;
使用该方法可以在图形界面编程中实现程序的退出功能;
void gc() :该方法的作用是请求系统进行垃圾回收,至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况;
String getProperty(String key) : 该方法的作用是活的系统中属性名为key的属性对应的值
Runtime类:对应着java进程的内存使用的运行环境,是单例的
每个应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。
成员方法:
public static Runtime getRuntime() :返回与当前java应用程序相关的运行时对象。应用程序不能创建自己的Runtime类实例;
public long totalMemory() :返回java虚拟机中初始化时的内存总量,此方法的返回值可能随着时间的推移而变化,这取决于主机环境,默认为物理电脑内存的1/64;
public long maxMemory() :返回Java虚拟机中最大程度能使用的内存总量,默认为物理电脑内存的1/4;
public long freeMemory():回收java虚拟机中的空闲内存量,调用gc方法可能导致freeMemory返回值增加;

Math类:

public static double abs(double a) 返回double值的绝对值
public static double ceil(double a) 返回大于等于参数的最小的整数
public static double floor(double a) 返回小于等于参数的最大的整数
public static long round(double a) 返回最接近参数的long (相当于四舍五入方法)
public static double pow(double a, double b):返回a的b的幂次方法
public static double sqrt(double a): 返回a的平方根
public static double random():返回[0,1)的随机值

java.math包

BigInteget类: 表示不可变的任意精度的整数。BigInteger提供所有java的基本整数的对应物,并提供java.lang.math的所有相关方法
方法:
BigInteger abs() : 返回此BigInteger的绝对值;
BigInteger add(BigInteger val) : 返回其值为(this + val) 的 BigInteger值;
BigInteger substract(BigInteger val) (this - val)
BigInteger muitiply(BigInteger val) : (this * val)

BigDecimal 类:在商业计算中要求数字精度比较高时用到这个类
具体方法也是类似BigInteger;

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值