1 Object
所有对象的顶级父类
存在于java.lang包中,这个会自动导入。
toString()
默认返回 类名@地址 的格式,来展示对象的地址值,如:a00000.Student@a0834e7。
如果想看属性值我们可以重写这个方法,重写后返回的就是把属性值拼接成一个字符串。
equals(Object obj)
当前对象和参数对象比较大小,默认是比较内存地址,如果要比较对象的属性,可以重写该方法。
hashCode()
返回该对象的哈希码值。对象相同,哈希码值一定相同;对象不同,哈希码值可能相同,也可能不同
2 String(字符串对象)
1.是一个封装char[]数组的对象。字符串不可变
2.如果是第一次使用字符串,java会在字符串常量池创建一个对象。再次使用相同的内容时,会直接访问常量池中存在的对象。
3 StringBuilder/StringBuffer
特点:
1、 封装了char[]数组
2、 是可变的字符序列
3、 提供了一组可以对字符内容修改的方法
4、 常用append()来代替字符串做字符串连接
5、 内部字符数组默认初始容量是16:initial capacity of 16 characters
6、 如果大于16会尝试将扩容,新数组大小原来的变成2倍+2,容量如果还不够,直接扩充到需要的容量大小。int newCapacity = value.length * 2 + 2;
7、 StringBuilder线程不安全,StringBuffer线程安全
StringBuilder和StringBuffer的区别
1、 在线程安全上,StringBuilder是jdk1.5后产生,线程不安全的。StringBuffer是旧版本就提供的,线程安全的。
2、 在执行效率上,StringBuilder > StringBuffer > String
4 包装类
基本类型是小写,包装类型是大写
Number类是数字包装类的抽象父类
在Integer类中,包含256个Integer缓存对象,范围是 -128到127(整数池)
使用valueOf()时,如果指定范围内的值,访问缓存对象,而不新建;如果指定范围外的值,直接新建对象。
自动装箱和自动拆箱
自动装箱:把基本类型包装成一包装类的对象
Integer a = 5;//a是引用类型,引用了包装对象的地址。
编译器会完成对象的自动装箱:Integer a = Integer.valueOf(5);
自动拆箱:从包装对象中,自动取出基本类型值
int i = a;//a现在是包装类型,没法给变量赋值,需要把5取出来。
编译器会完成自动拆箱:int i = a.intValue();
5 Date(日期类)
存在于java.util.Date包。用来封装一个毫秒值表示一个精确的时间点。从1970-1-1 0点开始的毫秒值。
6 SimpleDateFormat(日期工具)
日期格式化工具,可以把Date对象格式化成字符串,也可以日期字符串解析成Date对象。
7 BigDecimal/BigInteger
BigDecimal:常用来解决精确的浮点数运算。
BigInteger:常用来解决超大的整数运算。