为了使基础类型拥有对象的特性,于是便有了包装类。 基本类型转换成对应的包装类型的过程称为装箱;包装类型转换成对应的基本类型的过程称为拆箱。
Integer test = 123; //等同于 Integer test = new Integer(123);
int a = test;//等同于 int a = test.intValue();
触发自动装箱的情况:
- 将基本类型赋值给包装类对象;
触发自动拆箱的情况:
- 将包装类对象赋值给基本类型;
- 对包装类对象进行算术运算符、位运算符和位移运算符“+, ++, --, -, *, /, %, &, |, ^, ~, <<, >>, >>>”操作时;
- 对包装类对象进行关系运算符">, <, >=, <="操作时;
- 包装类对象与基本类型进行"==, !="操作时;
需要注意的几点:
- 当Integer 取值为-128~127时,拆箱时仍然是当做基本数据类型处理;
Integer a = 123;
Integer b = 123;
a == b;//true
Integer a = 456;
Integer b = 456;
a == b;//false
- 包装类对象为null时,拆箱将报错;
Integer a = null;
a != 1;//空指针异常