[Java] 自动装箱和自动拆箱(autoboxing and autounboxing)

ArrayList<Double> list = new ArrayList<>();
list.add(5.5); // 5.5 is automatically converted to new Double(5.5)
list.add(3.0); // 3.0 is automatically converted to new Double(3.0)
Double doubleObject = list.get(0); // No casting is needed
double d = list.get(1); // Automatically converted to double

(Chapter 19.2 的例子)

原生类型和包装类类型指间的自动转换
根据上下文,原生类型可以使用包装类自动转换为对象,反之亦然。.

将原生类型转换为对象称为装箱,逆转换叫做拆箱, Java允许原生类型和包装类型自动进行转换。

编译器在需要对象的上下文中会自动将原生值装箱,在需要原生值的上下文中将对象拆箱,这称为装箱和拆箱。

例如,下列语句:

Integer intObject = new Integer (2);

因为编译器支持自动装箱,所以可以简写为:

Integer intObject = 2;

考虑如下的例子:
1 Integer[] intArray = {1, 2, 3};
2 System.out.println(intArray[0] + intArray[1] + intArray[2]);
第 1 行,原始值 1,2, 和 3 自动装箱成对象:new Integer(1),
new Integer(2), 和new Integer(3)
第 2 行,3个对象 intArray[0], intArray[1],和 intArray[2]自动拆箱成对应的值并加到一起,输出 6.


[1] Introduction to Java Programming section 10.8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值