【问题标题】:Why == does not work for Wrapper classes in Java [duplicate]为什么 == 不适用于 Java 中的 Wrapper 类 [重复]
【发布时间】:2015-08-26 12:38:59
【问题描述】:

为什么 Integer 类返回 false,即使值两个 Integer 变量相同。 仅当值大于 127 时才会发生这种情况。

    Integer a = 300;
    Integer b = 300;
    System.out.println(a==b);

上面的代码打印错误。变量 a 和 b 的值相同,那么为什么会打印为 false。

    Integer a = 127;
    Integer b = 127;
    System.out.println(a==b);

此代码将打印为 true。 谁能解释一下为什么java会这样。

谢谢

【问题讨论】:

标签: java integer wrapper


【解决方案1】:

这是因为 127 以下的值被缓存并在微观层面出于性能原因使用相同的存储位置。这就是true 在第二种情况下的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-23
    • 2023-02-25
    • 2017-01-31
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    相关资源
    最近更新 更多