Integer的等于判断

Integer c = 3;
Integer d = 3;
Integer e = 321;
Integer f = 321;
System.out.println(c == d);    true
System.out.println(e == f);    false

 

原因如下

static final Integer cache[] = new Integer[-(-128) + 127 + 1];
 
static 
{
    for(int i = 0; i < cache.length; i++)
    cache[i] = new Integer(i - 128);
}

小于128的会用常量池中的 不会new Integer,大于128会new Integer

posted @ 2016-09-23 15:56  我也姓程  阅读(1305)  评论(0编辑  收藏  举报