再谈Java

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值