AutoBoxing 和UnBoxing
Integer integer1 = new Integer(10);
//AutoBoxing
Integer integer2 = 10;
JDK1.5中应用的AutoBoxing方便了大家的使用 依赖编译器蜜糖(Compiler Sugar) 隐藏了实现细节 有如MS对double细节的控制
在HashSet Map等需要Object的地方 基本数据类型使用起来很不方便
运用JDK1.5的AutoBoxing 简化了操作 可以把基础数据类型自动包装成Wrapper Types
不过要注意
1.AutoBoxing 消耗比较大的性能
boolean、byte、short、char、long、float、double等基本数据类型,分别会使用对应的打包类型(Wrapper Types)
Boolean、Byte、Short、Character、Long、Float或Double
2.对象可以赋值的 不一定可以赋值给基础数据类型
Integer i = null;int j = i;
这样的语法在编译时期是合法的,但是在运行时期会有错误,因为这种写法相当于:
Integer i = null;int j = i.intValue();
3.对象池技术的影响
包装类的一般只对-128到127使用对象池技术 这个时候 使用==比较 会返回 true
超出这个范围使用==比较 会返回 false
所以对对象的比较慎用 '=='
//2008-05-23号修改