Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer[],保存了从-128~127范围的整数,给Integer赋值时在-128~127的范围内,可以直接使用数据中的元素,不用再去堆区创建
public void test() {
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j); //false
// Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer[],保存了从-128~127范围的整数,
// 给Integer赋值时在-128~127的范围内,可以直接使用数据中的元素,不用再去new
Integer m = 1;
Integer n = 1;
System.out.println(m == n); // true
Integer x = 128;
Integer y = 128;
System.out.println(x == y); // false
}
上述代码执行的结果:
false
true
false