Object类
Objects类
Objects的 equals方法
先做非空判断,再比较两个对象
String s1 = "null";
String s2 = "ithema";
System.out.println(Objects.equals(s1,s2));//更安全
Objects的 isNull 方法
判断对象是否为null,为null返回true,反之
System.out.println(Objects.isNull(s1));// true
System.out.println(s1==null);// true
System.out.println(Objects.isNull(s2));//flase
System.out.println(s2==null);// flase
Objects的nonNull方法
判断对象是否不为null,不为null返回true,反之
System.out.println(Objects.nonNull(s1));// flase
System.out.println(Objects.isNull(s2));// true
包装类
就是把基本类型的数据包装成对象
//Interger a1 = new Interger(12);过时了
Interger a2 = Interger.valueOf(12);
System.out.println(a2);//12
自动装箱:可以自动把基本类型的数据转换成对象
Interger a3 = 12;
自动拆箱:可以自动把包装类型的对象转换成对应的基本数据类型
int a4 = a3;
应用:泛型和集合不支持基本数据类型,只能支持引用数据类型
//集合
//ArrayList<int> list = new ArrauList<>();
ArrayList<Interger> list = new ArrayList<>();
list.add(12);//自动装箱
list.add(13);
int rs = list.get(1);//自动拆箱
--------------------------------------------------------------------------
把基本类型的数据转换成字符串
Interger a = 23;
String rs1 = Interger.toString(a);// "23"
System.out.println(rs1+1);// 231
String rs2 = a.toString();
System.out.println(rs2+1);
String rs3 = a+"";
System.out.println(rs3+1);
把字符串类型的数值转换成对应的基本类型
String ageStr = "29";
//int ageI = Integer.parseInt(ageStr);//29
int ageI = Integer.valueOf(ageStr);
System.out.println(ageI+1);//30
String scoreStr = "99.5";
//double score = Double.parseDoule(scoreStr);
double score = Double.valueOf(scoreStr);
System.out.println(scoreStr+0.5);
StringBuilder
1,拼接内容 append(任意类型)
//StringBuilder s = new StringBuilder();无参构造器
StringBuilder s = new SringBuilder("ithema");//有参构造器
//1,拼接内容 append(任意类型)
s.append(12);
s.append("黑马");
s.append(true);
//支持链式编程
s.append(666).append("黑马2").append(666);
System.out.println(s);//ithema12黑马true666黑马2666
2,反转操作
s.reverse();
System.out.println(s);//6662马黑666eurt马黑21amehti
3,返回字符串长度
System.out.println(s.length());
4,把StringBuilder对象又转换成String类型
String rs = s.toString();
System.out.println(rs);
应用:对于字符串相关的操作,如频繁的拼接,修改等,建议用StringBuilder,比String的性能高
StringBuilder sb = new StringBuilder();
for(int i = 0;i<1000000;i++){
sb.append();
}
System.out.println(sb);
StringBuffer和StringBuilder的区别:
StringBuffer和StringBuilder的用法是一模一样的
StringBuffer是线路不安全的,StringBuilder是线路安全的
StringJoiner和StringBuilder的区别:
StringJoiner与StringBuilder一样,也是用来操作字符串的,也可以看成是一个容器,创建之后里面的内容是可变的
好处:不仅能提高字符串的操作效率,并且在有些场景下使用它操作字符串,代码会更简洁
StringJoiner s = new StringJoiner(", " , "[" , "]");//间隔符号,开始符号,结束符号
s.add("Java1");
s.add("Java2");
s.add("Java3");
System.out.println(s);//[java1,java2,java3]