拆箱和装箱

装箱:基本类型转变为包装器类型的过程。
       拆箱:包装器类型转变为基本类型的过程。

以Integer为例分析自动装箱和拆箱的过程,先看一组代码

从源码来分析结果,Integer有value属性,类型为int,对于1处和4处会触发自动装箱,即执行valueof方法

由上源码可知装箱时当i>=-128,i<=IntegerCache.high(默认127)会自动从内部类IntegerCache的cache数组中拿取对象,超出这个范围则new对象,1处在返回内,会拿取同一缓存对象,4处不在范围内,会直接new对象,所以1处返回true,4处返回false,2处i是缓存对象,j是new,返回false.

3,5处是equals返回,Integer进行了重写,比较的是value

6处会进行拆箱,即调用intvalue返回基本类型

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值