1.Object类
①toString:返回对象的字符串表示形式
⭐为了被子类重写,以便返回对象具体的内容
②equals:判断两个对象是否相等
⭐为了被子类重写,以便子类自己来定制比较规则(比如比较对象的内容)
直接比较两个对象的地址是否相同:==
// TODO Object类提供的常用方法
Student s1 = new Student("赵敏",23);
System.out.println(s1.toString());// Student{name='赵敏', age=23}
System.out.println(s1);// Student{name='赵敏', age=23}
Student s2 = new Student("赵敏",23);
System.out.println(s2.equals(s1));// true
System.out.println(s2 == s1);// false
③clone(对象克隆)
当某个对象调用这个方法时,这个方法会复制一个一模一样的新对象返回
⭐需要实现Cloneable接口
// TODO Object类提供的对象克隆的方法
// 对象克隆 protected Object clone()
User u1 = new User(1,"张三","wo666",new double[]{99.0,99.5});
User u2 = (User) u1.clone();
System.out.println(u1.getId());
System.out.println(u1.getPassword());
System.out.println(u1.getUsername());
System.out.println(u1.getScores());
System.out.println("--------------------");
System.out.println(u2.getId());
System.out.println(u2.getPassword());
System.out.println(u2.getUsername());
System.out.println(u2.getScores());
浅克隆:引用类型拷贝的只是地址
深克隆:基本类型的数据直接拷贝,字符串数据拷贝的还是地址
2.Objecs类
①equals:先做非空判断,再比较两个对象
②isNull:判断对象是否为null,为null返回true,反之
③nonMull:判断对象是否不为null,不为null则返回true,反之
3.包装类
就是把基本类型的数据包装成对象
自动装箱:基本数据类型可以自动转换为包装类型
自动拆箱:包装类型可以自动转换为基本数据类型
⭐包装类的其他常见操作
⭐ 泛型和集合不支持基本数据类型,只能支持引用数据类型
// ArrayList<int> list = new ArrayList<int>();
ArrayList<Integer> list = new ArrayList<>();
4.StringBuilder/StringBuffer
代表可变字符串对象,相当于是一个容器,它里面装的字符串是可以改变的,就是用来操作字符串的(类似于String的功能)
①方法
⭐append:添加数据并返回StringBuilder对象本身(添加内容)
⭐reverse:将对象的内容反转
⭐length:返回对象内容长度
⭐toString:把StringBuilder转换为String
5.StringJoiner
跟StringBuilder一样,也是用来操作字符串的,也可以看成是一个容器,创建之后里面的内容是可变的
方法
⭐add:添加数据,并返回对象本身
⭐length:返回长度(字符出现的个数)
⭐toString:返回一个字符串(该字符串就是拼接之后的结果)
6.Math
代表数学,是一个工具类,里面提供的都是对数据进行操作的一些静态方法
7.System
8.BigDecimal
9.Date
10.SimpleDateFormat
代表简单日期格式化,可以用来把日期对象,时间毫秒值格式化成我们想要的形式
11.Calendar
代表的是系统此刻时间对应的日历,通过它可以单独获取,修改时间中的年月日时分秒
12.注意
13.
localDate:代表本地日期(年月日星期)
LocalTime:代表本地时间(时分秒纳秒)
localDateTime:代表本地日期,时间(年月日星期时分秒纳秒)
14.Zoneld ZoneDateTime 时区
15.Instant
16.DateTimeFormatter
17.Duration Period
可以用于计算两个LocalDate对象相差的年数,月数,天数
18.Duration
可以用于计算两个时间对象相差的天数,小时数,分数,秒数,纳秒数
19.Arrays
// 1.返回数组的内容
int[] arr = {10,20,30,40,50,60};
System.out.println(Arrays.toString(arr));// [10, 20, 30, 40, 50, 60]
// 2.拷贝数组:指定范围,包前不包后
int[] arr2 = Arrays.copyOfRange(arr,1,4);
System.out.println(Arrays.toString(arr2));// [20, 30, 40]
// 3.拷贝数组,可以指定新数组的长度
int[] arr3 = Arrays.copyOf(arr,10);
System.out.println(Arrays.toString(arr3));// [10, 20, 30, 40, 50, 60, 0, 0, 0, 0]
// 4.把数组中的原数据改为新数据又存进去
double[] prices = {99.8,128,100};
// 把所有的价格都打八折,然后又存进去
Arrays.setAll(prices, new IntToDoubleFunction() {
@Override
public double applyAsDouble(int value) {
// value 取索引
return prices[value] * 0.8;
}
});
System.out.println(Arrays.toString(prices));// [79.84, 102.4, 80.0]
// 5.对数组进行排序,默认升序排序
Arrays.sort(prices);
System.out.println(Arrays.toString(prices));// [79.84, 80.0, 102.4]