一、8大包装类
- byte---Byte
- short---Short
- int---Integer
- long---Long
- float---Float
- double---Double
- char---Character
- boolean---Boolean
自学别人写好的类的4大要点
- 类所在的包
- 类的关系(继承、实现)
- 类中的常用方法
- 方法的调用方式(new对象调用,还是静态方式调用)
举例:Integer常用方法
- new Integer(123) 构造方法
- Integer.parseInt(String s) 将字符串参数解析为带符号的十进制整数。
- intValue() 将 Integer的值作为 int 。
二、名考题
2.1
Integer i1 = 10;
Integer i2 = 10;
Integer i3 = new Integer(10);
Integer i4 = new Integer(10);
System.out.println(i1 == i2); //true
System.out.println(i1 == i3); //false
System.out.println(i3 == i4); //false
System.out.println(i1.equals(i2)); //true
System.out.println(i1.equals(i3)); //true
System.out.println(i3.equals(i4)); //true
解析
- 对象在内存中的关系

- == 与equals()的区别
- ==可以比较基本类型,也可以比较引用类型 如果比较基本类型,比较的是变量存储的值 如果比较引用类型,比较的是变量存储的引用地址(其实也是值)
- equals()是Object类中继承过来的方法,每一个引用类型都可以调用 默认继承的equals方法与==一致,如果想要改变比较规则,需要重写方法。
2.2
Integer i1 = 1000;
Integer i2 = 1000;
Integer i3 = new Integer(1000);
Integer i4 = new Integer(1000);
System.out.println(i1 == i2); //false
System.out.println(i1 == i3); //false
System.out.println(i3 == i4); //false
System.out.println(i1.equals(i2)); //true
System.out.println(i1.equals(i3)); //true
System.out.println(i3.equals(i4)); //true
- 常量池
Integer类中有个IntegerCache的内部类,IntegerCache中有个Integer数组,保存了-128到127的数字,如果对象在这范围之类,则直接取值;如果不在,则会在堆内存新建对象。