对象包装器与自动装箱
每个基本数据类型都有一个与之对应的类,例如int对应integer,这些类被称为包装器。对象的包装器不可改变,所以构造了包装类后,就不允许改变包装类在其中的值,同时,包装器类还是final,所以不能定义子类。假设定义一个整形数组列表,尖括号中不允许使用基本数据类型,所以声明int必须使用包装器类。可以直接将int类型添加到这个数组列表中,因为拥有一个可以将int变量变成integer的方法。相反的可以将一个integer对象赋给一个int值,将会自动的拆箱,也可以在算术表达式中自动的装箱和拆箱。大多数情况下都会这两个难以区分,==这个运算符只能比较基本算术类型,包装箱之间的比较只能使用equals方法。由于包装类可以指向null,所以在使用的时候可能会抛出一个NullpointerException异常,装箱和拆箱是编译器认可的,而不是虚拟机。编译器在生成类的字节码时,插入必要的方法调用,虚拟机只不过是执行了字节码
可以将某些基本方法放在包装器中,这些方法与包装器类的对象没有任何关系
再谈Java
最新推荐文章于 2025-05-23 17:03:50 发布