深入浅出Integer , 为什么Integer的缓存区是【-128~127】

代码

public static void main(String[] args) {

        Integer c = new Integer( 100);
        Integer d = new Integer(100);
        System.out.println(c == d); //false  1)
        Integer a = 100 ;
        Integer b = 100;
        System.out.println(a == b); // true  2)
 
        Integer e = 130;
        Integer f = 130;
        System.out.println(e == f); //false  3)

}

为什么 c==d 是false?

  1.   这里由于是比较内存地址,所以不相等

 

为什么 a == b 是 true ?

因为Integer 内部会把-128~127缓存起来

 

为什么 缓存区域是 -128~127 ?

因为2进制 最大数是127:是2的7次方减1,也就是127 , 而最小的数是-128:由于负数在计算机中是以其补码形式存在 

也就是这里是根据二进制的大小存在的

 

为什么 e == f 是 false?

看上 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值