1. 引言
在牛客网上看到这样一道题目,判断一下打印的结果
public static void main(String[] args){
Integer i1 = 128;
Integer i2 = 128;
System.out.println(i1==i2);
Integer i3 = 100;
Integer i4 = 100;
System.out.println(i3==i4);
}
刚开始看到是,是这样来判断的:因为 Integer i1 = 128 这条语句,Integer 会启用自动装箱功能,调用 Integer.valueOf 方法返回一个 Integer 对象,因此这四个对象应该指向不同的地址,所以打印的结果是两个 false。但是在 eclipse 运行结果如下,为什么会这样呢?