美文网首页Java语言
关于Integer初始化的问题

关于Integer初始化的问题

作者: 李2牛 | 来源:发表于2018-03-12 18:13 被阅读27次

上代码

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

相关文章

网友评论

    本文标题:关于Integer初始化的问题

    本文链接:https://www.haomeiwen.com/subject/vtqofftx.html