学IT就来ACCP教程网
您的位置:ACCP教程网第一学期JAVA ┳ 内容

6.1包装类

时间:2009-05-29 17:18:09 |来源:ACCP教程网 |作者:李波 |点击:

自动装箱与拆箱的功能事实上是编译器来帮您的忙,编译器在编译时期依您所编写的语法,决定是否进行装箱或拆箱动作。例如:

Integer i = 100;相当于编译器自动为您作以下的语法编译:

Integer i = new Integer(100);所以自动装箱与拆箱的功能是所谓的“编译器蜜糖”(Compiler Sugar),虽然使用这个功能很方便,但在程序运行阶段您得了解Java的语义。例如下面的程序是可以通过编译的:

Integer i = null;int j = i;这样的语法在编译时期是合法的,但是在运行时期会有错误,因为这种写法相当于:

Integer i = null;int j = i.intValue();null表示i没有参考至任何的对象实体,它可以合法地指定给对象参考名称。由于实际上i并没有参考至任何的对象,所以也就不可能操作intValue()方法,这样上面的写法在运行时会出现NullPointerException错误。

自动装箱、拆箱的功能提供了方便性,但隐藏了一些细节,所以必须小心。再来看范例4.6,您认为结果是什么呢?

Ü 范例4.6 AutoBoxDemo2.java

public class AutoBoxDemo2 {

public static void main(String[] args) {

Integer i1 = 100;

Integer i2 = 100;

if (i1 == i2)

System.out.println("i1 == i2");

else

System.out.println("i1 != i2");

}



 
包装类
 
Character包装类的方法
 

顶一下
(2)
66.7%
踩一下
(1)
33.3%
上一篇:第五章总结 下一篇:6.2String类(上)
loading.. 评论加载中....