JDK1.5版本以后,基本数据类型包装类有了新的特性
1、自动装箱,拆箱
Integer x = 4; // 相当于Integer x = new Integer(4),可以称为“自动装箱”
x = x+2; // 此句中对x进行了自动拆箱,
// 拆箱过程:x = x/*x.intValue()*/+2
// 将x由Integer对象变成了int型,
// 与2进行相加运算,再将x+2的值进行装箱转换成Integer对象赋给x
注意:Integer对象类型的x值可能为null,如果x=null,自动拆箱时程序会抛出异常,中止运行。因此,使用新特性时,要先判断x是否为null
2、对于新特性,如果数值为byte范围内,且数值已经存在,则不会再开辟新的空间建立对象,而是直接指向已有对象,节省内存空间
Integer m = 128;
Integer n = 128;
m == n; // false: m,n指向不同对象
Integer a = 127;
Integer b = 127;
a == b; // true: a,b指向了同一对象
|
|