今日无事,学习
今日总结:
Java学习:
常用API:
Object类中方法:
toString:printf打印的内容都在对象后面默认加上.toString
●基本作用:返回对象的字符串形式。
●存在的意义:让子类重写,以便返回子类对象的内容。
equals
●基本作用:默认是比较两个对象的地址是否相等。
●存在的意义:让子类重写,以便用于比较对象的内容是否相同。
clone
当某个对象调用这个方法时,方法会复制一个一模一样的新对象返回。
浅克隆
拷贝出的新对象,与原对象中的数据一模一样(引用类型拷贝的只是地址)
深克隆
对象中基本类型的数据还是直接拷贝。
对象中的字符串数据拷贝的还是地址。
对象中还包含的其他对象,不会拷贝地址,会创建新对象。
Objects类中方法:
equals
public static boolean equals(Object a, Object b)
先做非空判断,再比较两个对象
isNull
public static boolean isNull(Object obj)
判断对象是否为null,为null返回true ,反之
nonNull
public static boolean nonNull(Object obj)
判断对象是否不为null,不为null则返回true,反之
包装类:包装类就是把基本类型的数据包装成对象。
| 对应的包装类(引用数据类型) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
自动装箱:基本数据类型可以自动转换为包装类型。
Integer a3 = 12;
自动拆箱:包装类型可以自动转换为基本数据类型。
int a4 = a3;
泛式和集合不支持基本数据类型,只能支持引用数据类型。
●可以把基本类型的数据转换成字符串类型。
Integer a = 23;
String rs1 = Integer.toString(a); // "23"
●可以把字符串类型的数值转 换成数值本身对应的数据类型。
String ageStr = "29";
int ageI = Integer.valueOf(ageStr); //29
StringBuilder:
●StringBuilder代表可变字符串对象,相当于是一个容器,它里面装的字符串是可以改变的,就是用来操作字符串的。
●好处:StringBuilder比String更适合做字符串的修改操作,效率会更高,代码也会更简洁。
构造器 | 说明 |
---|---|
public StringBuilder() | 创建一个空白的可变的字符串对象,不包含任何内容 |
public StringBuilder(String str) | 创建一个指定字符串内容的可变字符串对象 |
方法名称 | 说明 |
public StringBuilder append(任意类型) | 添加数据并返回StringBuilder对象本身 |
public StringBuilder reverse() | 将对象的内容反转 |
public int length() | 返回对象内容长度 |
public String toString() | 通过toString()就可以实现把StringBui lder转换为String |
StringBuffer:
●StringBuffer的用法与StringBuilder是一模一样的
●但StringBuilder是线程不安全的,StringBuffer是线程安全的
StringJoiner:
●JDK8开始才有的,跟StringBuilder一样,也是用来操作字符串的,也可以看成是一个容器,创建之后里面的内容是可变的。
●好处:不仅能提高字符串的操作效率,并且在有些场景下使用它操作字符串,代码会更简洁
构造器 | 说明 |
---|---|
public StringJoiner(间隔符号) | 创建一个StringJoiner对象,指定州接时的间隔符号 |
public StringJoiner(间隔符号,开始符号,结束符号) | 创建一个StringJoiner对象,指定拼接时的间隔符号、开始符号、结束符号 |
方法名称 | 说明 |
public StringJoiner add(添加的内容,只能是字符串) | 添加数据,并返回对象本身 |
public int length() | 返回长度(字符出现的个数) |
public String toString() | 返回一个字符串(该字符串就是拼接之后的结果) |