java Integer i1=10;Integer i2=10;System.out.println(i1==i2);

Integer i1=10;
Integer i2=10;
System.out.println(i1==i2);
为什么结果会是true?

你好,这段小程序只是数值的判断,虽然是用引用数据类型去赋的数值,但是拆箱之后就自动转换成了简单数据类型,数值一样,所以在逻辑判断的时候自然也就输出了TRUE啊,希望能帮到你,望采纳。追问

不明白为什么要拆箱,两种都是Integer,没必要拆箱吧!
我只知道如果是赋值的时候比如int i=new Integer(101);的时候需要拆箱,
比较的时候要拆箱没听过欸!求说的详细点

追答

因为你在赋值的时候直接赋的是简单数据类型啊,你不是用new这个构造器创建出来的一个对象啊,所以就自动拆箱了啊。不是要拆箱,这是这几个类所特有的特性啊。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-10
Integer i1=10;这种赋值方式会自动调用Integer的valueOf()缓存(如果值大于127不会缓存)为基本类型。本回答被提问者和网友采纳
第2个回答  2014-11-01
i1与i2的值相等,就是正确的啊 ==这是逻辑判断了追问

这是引用类型,不是基本类型的比较

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网