楼上回答有误,Integer i = 5; 应该是这样 Integer i = Integer.valueOf(5), 不过底层封装的话有有区别, 如果是-128到 127 那么直接在缓存中, 如果超过这个范围, 那么就是用的new Integer(int i) ,这里顺便引出来一个面试题
Integer i1 = 5;
Integer i2 = 5;
System.out.println(i1==i2); //结果为true
Integer i3 = 500;
Integer i4 = 500;
System.out.println(i3 == i4)//结果为false,
这个结果的原因也是我上面说的原因
|