读书人

根本数据类型拆装箱

发布时间: 2013-12-22 15:06:55 作者: rapoo

基本数据类型拆装箱
自动拆箱与装箱

Jdk5以后提供了自动拆箱(unboxing)与装箱(autoboxing),但是对拆装箱的细节进行了部分隐藏,需要注意

基本数据类型对应的包装类

Java是面向对象的语言,而基本数据类型只是字面量,不是对象。为了解决这个问题java引入了基本数据类型的包装类

Integer Double Long Short Character Boolean Float Byte

Integer i = 10; //自动装箱

Double a = i.DoubleValueOf();? //10.0

也可以使用更一般化的java.lang.Number类来自动装箱。例如:

Number a = 3.4f;

自动拆装箱的陷阱

Integer i = null;

Int a = I;? //编译无错误? 运行时出空指针异常

?? System.out.println(b1 == b2);//false

?

==是用来比较两个基本数据类型的值是否相同,同时==也可以判断两个对象的引用是否相同(是否是同一对象)。对于-128~127(1个字节)的值会在你自动拆装箱过程中重用,因此这个范围内的Integer类型对象是相同的,而超出这个范围的则不会得到重用,因此对象实不相等的。

?

?

读书人网 >编程

热点推荐