【问题标题】:How Integer object is created? [duplicate]Integer 对象是如何创建的? [复制]
【发布时间】:2012-12-05 14:23:34
【问题描述】:

可能重复:
How != and == operators work on Integers in Java?

整数 i1 = 1000; 整数 i2 = 1000;

if(i1 == i2) 返回 false。究竟发生了什么,它是如何在这里检查这种情况的?

如果条件为真,我在 i1 和 i2 中分配的值都小于 128。对象是如何在这里创建的,它是所有值的共同点还是不同的? 有人可以澄清这种情况吗?

【问题讨论】:

标签: java


【解决方案1】:

如果条件为真,我在 i1 和 i2 中分配的值都小于 128

是的,这是因为在该范围内,Java 使用享元模式并缓存 Integer 对象,因此您获得了缓存版本的支持,并且 == 有效
这是可能的,因为 Integer 对象是不可变的,并且缓存仅适用于范围 [-128,127]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 2018-02-21
    • 2021-11-22
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多