所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类Number子类
- 装箱: 自动将基本数据类型装换为包装器类型
- 拆箱: 自动将包装器类型转换为基本数据类型
int a= 1;
Integer b = a; // 自动装箱
int c = b; // 自动拆箱
int a= 2;
Integer b = new Integer(a); // 手动装箱
int c = b.intValue(); // 手动拆箱
需要注意:
在 -128 到 127 之间的值,被装箱后,会被放在内存中重用,超出该值,系统会重新 ==new== 一个对象
Integer a = 10;
Integer b = 10;
System.out.println( a==b ); // true
System.out.println( a.equals(b) ); // true
Integer a = 128; // 相当于:Integer.valueOf(128);
integer b = 128;
System.out.println( a==b ); //false
System.out.println( a.equals(b) ); //true