- 每种基本数据类型都有其对应的包装器类,将基本数据类型转换成其对应的包装器类后就可以调用包装器类中的方法。
- 包装器类是不可变的,即包装器类的对象中的值是不可更改的,同时,包装器类还是final的,即包装器类不能派生子类。
- 将基本数据类型赋给对应的包装器类变量,称为自动装箱;将包装器类对象赋给对应的基本数据类型变量,称为自动拆箱。
- 特别的,Integer类的内部定义了一个static数组cache[],预先存储了-128 ~ 127范围内的Integer对象,如果使用自动装箱的方式实例化-128 ~ 127范围内的Integer对象,则不会实例化新的对象,而是直接指向预先存储好的对象。因此,byte、-128 ≤ short ≤ 127、-128 ≤ int ≤ 127、0 ≤ char ≤ 127、boolean都会被自动装箱到固定的对象中。
public class AutoBox {
public static void main(String[] args) {
int value11 = 1;
Integer value12 = value11;
System.out.println(value12.toString());
Integer value21 = new Integer(2);
int value22 = value21;
System.out.println(value22);
boolean bool11 = false;
Boolean bool12 = bool11;
System.out.println(bool12.toString());
Boolean bool21 = new Boolean("TRue");
boolean bool22 = bool21;
System.out.println(bool22);
Integer Value31 = 127;
Integer Value32 = 127;
System.out.println("127 == 127? " + (Value31 == Value32));
Integer Value41 = 128;
Integer Value42 = 128;
System.out.println("128 == 128? " + (Value41 == Value42));
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/b4d30c2450b24b8f966c98923e5715ca.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Zi_6LSi57un57ut5Yqq5Yqb,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)