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的值相等,就是正确的啊 ==这是逻辑判断了追问
这是引用类型,不是基本类型的比较