自动装箱的陷阱

Posted 飞奔的菜鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动装箱的陷阱相关的知识,希望对你有一定的参考价值。

 1 class TestAuto{
 2     public static void main(String[] args){
 3         int i = 1;
 4         Integer a = 1;
 5         Integer b = 2;
 6         Integer c = 3;
 7         Integer d = 3;
 8         Integer e = 321;
 9         Integer f = 321;
10         Long g = 3L;
11         System.out.println(i == a);//true
12         System.out.println(c == d);//true
13         System.out.println(e == f);//false
14         System.out.println(c == (a + b));//true
15         System.out.println(c.equals(a + b));//true
16         System.out.println(g == (a + b));//true
17         System.out.println(g.equals(a + b));//false
18     }
19 }

鉴于包装类的“==”在不遇到算数运算的情况下不会自动拆箱(但是看上面的输出好像可以自动拆箱)

以及它们的equals()方法不处理数据转型的关系

以上是关于自动装箱的陷阱的主要内容,如果未能解决你的问题,请参考以下文章

[Java]_[初级]_[装箱和拆箱的陷阱-不要使用==进行包裹类型wrapper class比较]

[Java]_[初级]_[装箱和拆箱的陷阱-不要使用==进行包裹类型wrapper class比较]

java 自动装箱拆箱

Java 自动装箱与拆箱

java 啥是拆箱和装箱,拆箱和装箱 嘛用啊???

自动装箱和自动拆箱