为什么当使用“ ==”时将Integer和int赋给相同的值会产生不同的结果? [重复]

问题描述 投票:0回答:1
   `Integer a1=128;
    Integer a2=128;
    System.out.println(a1==a2);
    int b1=128;
    int b2=128;
    System.out.println(b1==b2);`

以上代码的输出是假真正”。有人可以解释以上输出的原因吗?

java int integer comparison-operators
1个回答
0
投票

Integer类为内部整数维护一个内部IntegerCache,默认情况下,该整数的范围是-128至127,并且Integer.valueOf()方法从该缓存中返回上述范围的对象。因此a == b返回true,因为a和b都指向同一个对象。

© www.soinside.com 2019 - 2024. All rights reserved.