这种问题有点钻牛角尖,相信想把JAVA学好学透的人都会喜欢.

来源:互联网 发布:手机淘宝怎么看收藏量 编辑:程序博客网 时间:2024/05/21 23:33

public class Test {
   
public static void main(String[] args) {
        Integer i1
= 100;
        Integer i2
= 100;
       
if (i1 == i2) {
            System.out.println(
"i1==i2");
        }
else {
            System.out.println(
"i1!=i2");
        }

        Integer i3
= 200;
        Integer i4
= 200;
       
if (i3 == i4) {
            System.out.println(
"i3==i4");
        }
else {
            System.out.println(
"i3!=i4");
        }
    }
}



结果:
i1==i2
i3!=i4

这是为什么?
答案为白色,选中查看:
在用Integer比较的时候是会分两种情况的,当取值在-128~127之间时,是用原生数据类型,也就是int去作比较,除此之外都是用Integer,也就是比较它们的地址,所以才得出了以上的结果!

原创粉丝点击