6、java自动装箱与拆箱

藏宝库编辑 2024-9-17 18:12:09 69 0 来自 中国
java自动装箱与拆箱

    装箱就是自动将根本数据范例转换为包装器范例(int->Integer);调用方法:Integer的valueOf(int)方法.
    拆箱就是自动将包装器范例转换为根本数据范例(Integer->int).调用方法:Integer的intValue方法.   
    在javaSE5之前,如果要生成一个数值为10的Integer对象,必须如许举行: 
1.png 而在javaSE5开始就提供了自动装箱的特性,如果要生成一个数值为10的Integer对象,只需要如许就可以了:


口试题1:以下代码会输出什么?
3.png 为什么会出现如许的结果?输出结果表明i1和i2指向的是同一个对象,而i3和i4指向的是差别的对象。此时只需一看源码便知毕竟,下面这段代码是Integer的valueOf方法的详细实现:
    从这2段代码可以看出,在通过valueOf方法创建Integer对象的时间,如果数值在[-128,127]之间,便返回指向IntegerCache.cache中已经存在的对象的引用;否则创建一个新的Integer对象。
    上面的代码中i1和i2的数值为100,因此会直接从cache中取已经存在的对象,以是i1和i2指向的是同一个对象,而i3和i4则是分别指向差别的对象。


口试题2:以下代码输出什么?
缘故因由:在某个范围内的整型数值的个数是有限的,而浮点数却不是.
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-19 00:22, Processed in 0.168761 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表