Integer a= 127 与 Integer b = 127相等吗?【详细介解】

今天爱分享给大家带来Integer a= 127 与 Integer b = 127相等吗?【详细介解】,希望能够帮助到大家。
对于对象引用类型:==比较的是对象的内存地址。
对于基本数据类型:==比较的是值。

如果整型字面量的值在-128到127之间,那么自动装箱时不会new新的Integer对象,而是直接引用常量池中的Integer对象,超过范围 a1==b1的结果是false



public static void main(String[] args) {
    Integer a = new Integer(3);
    Integer b = 3;  // 将3自动装箱成Integer类型
    int c = 3;
    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
}

人已赞赏
Java

int 和 Integer 有什么区别?【面试题详解】

2020-11-30 17:27:32

Java

mac nacos导入配置报错 未读取到合法数据,请检查导入的数据文件【解决办法】

2020-12-1 13:33:19

'); })();