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
本文解析Java Integer类如何利用IntegerCache提高性能,讲解-128到127范围内的整数直接复用机制,并通过代码实例展示不同情况下的equals比较结果。
5万+

被折叠的 条评论
为什么被折叠?



