这种问题有点钻牛角尖,但相信想把JAVA学好学透的人都会喜欢。 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,也就是比较它们的地址,所以才得出了以上的结果! |