Integer x= 127 与 Integer y = 127相等吗?(2013基础面题库)
今天面试时-遇到上面一个问题
其实面试官问出这个问题:
主要是向考察的知识点为: Integer在常量池中存储值的范围
注意事项:
当一个Integer的字面在 -128~127之间时,
则不会装箱为新的Integer对象
而直接引用常量池中的Integer对象
例:
public static void main(String[] args) {
Integer a = new Integer(8);
Integer b = 8; // 将8自动装箱成Integer类型
int c = 8;
System.out.println(a == b); // false 两个引用没有引用同一对象
System.out.println(a == c); // true a自动拆箱成int类型再和c比较
System.out.println(b == c); // true
Integer a1 = 128;
Integer b1 = 128;
System.out.println(a1 == b1); // false
Integer a2 = 127;
Integer b2 = 127;
System.out.println(a2 == b2); // true
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


