API 应用程序编程接口
就是Java帮我们已经写好一些程序,如:类、方法等,我们直接拿过来用就可以解决一些问题
常用API
Object类作用
Object是Java中所有类的祖宗类,因此,Java中所有类的对象都可以直接使用Object类提供的一些方法。
Object类的常见方法
方法名 说明
public String toString() 返回对象的字符串表示形式
public booleanequals(Object o) 判断两个对象是否相等
protected Object clone() 对象克隆
toString存在的意义:toString()方法存在的意义就是为了被子类重写,可以变返回对象具体的内容
equals存在的意义:直接比较两个对象的地址是否相同完全可以用“==”替代equals,equals存在的意义,就是为了被子类重写,以便子类自己来定制比较规则(比如比较对象内容)
clone当某个对象调用这个方法时,这个方法会复制一个一模一样的新对象,但是Object的clone是protected模式所以只能是Object及其子类可以用所以要重写克隆
浅克隆重写
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
深克隆
@Override
protected Object clone() throws CloneNotSupportedException {
// 实现深克隆
People p2 = (People) super.clone();
// 数组可以直接克隆
p2.scores = p2.scores.clone();
return p2;
}
Objects
Objects是一个工具类,提供了很多操作对象的静态方法。
常见方法
方法名 | 说明 |
---|---|
public static boolean equals(Object a, Object b) | 先做非空判断,在比较两个对象 |
public static boolean isNull(Object obj) | 判断对象是否为null,为null返回true,反之false |
public static boolean nonNull(Object obj) | 判断对象是否不为null,不为null则返回true,反之false |
包装类
包装类就是把基本类型的数据包装成对象
基本数据类型 | 对应包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
StringBuilder
代表可变字符串对象,相当于一个容器,它里面装的字符串是可以改变的,就是用来操作字符串的
好处:StringBuilder比String更适合做字符串的修改操作,效率会更高,代码也会更简洁
构造器 | 说明 |
---|---|
public StringBuilder() | 创建一个空白的可变字符串对象,不包含任何内容 |
public StringBuilder(String str) | 创建一个指定字符串的可变字符串对象 |
方法名称 | 说明 |
---|---|
append(任意类型) | 添加数据并返回StringBuilder对象本身 |
reverse() | 将对象的内容反转 |
length() | 返回对象内容长度 |
toString() | 通过toString()就可以实现把StringBuilder转换为String |
StringBuilder效率非常高
对于字符串相关的操作,如频繁的拼接、修改等,建议用StringBuilder,效率更高
注意:如果操作字符串较少,或者不需要操作,以及定义字符串变量,还是建议用String
StringBuilder和StringBuffer
注意:
StringBuffer的用法与StringBuilder是一模一样的
但StringBuilder是线程不安全的StringBuffer是线程安全的
StringJoiner
JDK8开始才有的,跟StringBuilder一样,也是用来操作字符串的,也可以看成一个容器,创建之前里面的内容是可变的。
好处:不仅能提高操作效率,并且有些场景使用它操作字符串,代码更简洁
构造器 | 说明 |
---|---|
StringJoiner(间隔符号) | 创建一个StringJoiner对象,指定拼接时的间隔符号 |
StringJoiner(间隔符号,开始符号,结束符号) |
方法名称 | 说明 |
---|---|
add(添加内容) | 添加数据,并返回对象本身 |
length() | 返回长度 |
toString() | 返回一个字符串(该字符串就是拼接之后的结果) |