Java语言

关于Integer初始化的问题

2018-03-12  本文已影响27人  李2牛

上代码

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的答案。

上一篇 下一篇

猜你喜欢

热点阅读