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 }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。