关于Integer初始化的问题
程序员文章站
2022-04-19 18:22:29
...
上代码
public class testInteger {
public static void main(String[] args) {
//test1
Integer a = new Integer(100);
Integer b = new Integer(100);
System.out.println("a == b?"+(a == b));//true
//test2
Integer c = 100;
Integer d = 100;
System.out.println("c == d? "+(c == d));//true
//test3
Integer e = 1000;
Integer f = 1000;
System.out.println("e == f?"+( e == f));//false
//test4
Integer g = 1000;
Integer h = 1000;
System.out.println("g ==h?"+( g.equals(h)));//true
}
}
使用Integer包装类的时候,如果Integer的数值在-128~127之间,jvm会对这个数值进行自动缓存,否则将会新建对象。导致test3中的false。test4中使用equals方法能得出true的答案。
上一篇: 关于java数组的初始化
下一篇: 关于初始化的顺序