Integer 拆箱

用一个范例来解释Integer的拆箱(本文来自黑马程序员的博客网站,为了方便以后查阅)

复制代码
 1 package com.blog;
 2 
 3 public class boxing {
 4     public static void main(String[] args){
 5         
 6         Integer c = 10;//Integer c = new Integer.valueof(10),从缓存中获取
 7         Integer d = 10;
 8         System.out.println(c.equals(d));//true, equals比较值是否一样
 9         System.out.println(c==d); //true,c和d都是指向缓存中的Integer.valueof(10)
10         
11         /*integer 对于-128到127的数会进行缓存
12          * public static Integer valueOf(int i) {
13          assert IntegerCache.high >= 127;
14          if (i >= IntegerCache.low && i <= IntegerCache.high)
15              return IntegerCache.cache[i + (-IntegerCache.low)];
16          return new Integer(i);
17         }*/
18         Integer e = 128;//Integer e = new Integer.valueof(128)(即= new Integer(128));
19         Integer f = 128;
20         System.out.println(e.equals(f));//true,equals比较值是否一样
21         System.out.println(e==f); //false, ==是比较内存地址是否一样,而e和f是分别new Integer(128)得到的
22         
23         int i = 128;
24         Integer j = 128;
25         System.out.println(j.equals(i));//true
26         System.out.println(i==j);//true, 比较时j会自动拆箱为128, int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比
27         
28         int k = 128;
29         Integer l = new Integer(128);
30         System.out.println(l.equals(k));//true
31         System.out.println(l==k);//true, 比较时l会自动拆箱为128
32         
33         Integer m = new Integer(128);
34         Integer n = new Integer(128);
35         System.out.println(m.equals(n));//true
36         System.out.println(m==n);//false, new 得到的堆内存中的地址肯定不一样了
37         
38         Integer o = new Integer(12);
39         Integer p = new Integer(12);
40         System.out.println(o.equals(p));//true
41         System.out.println(o==p);//false
42     }
43 }

转载于:https://www.cnblogs.com/xmlove/p/3618639.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值