【问题标题】:what Integer.valueOf() returns in java? [duplicate]Java 中的 Integer.valueOf() 返回什么? [复制]
【发布时间】:2015-02-19 03:39:42
【问题描述】:

为什么

Integer.valueOf(1000) == Integer.valueOf(1000)

返回false,而

Integer.valueOf(6) == Integer.valueOf(6)

返回true?

【问题讨论】:

    标签: java


    【解决方案1】:

    来自documentation

    此方法将始终缓存 -128 到 127(含)范围内的值,并可能缓存此范围之外的其他值。

    因此,Integer.valueOf(6) 只有一个实例对象,而Integer.valueOf(1000) 创建一个新的Integer

    因此Integer.valueOf(6) == Integer.valueOf(6)Integer.valueOf(1000) != Integer.valueOf(1000)

    【讨论】:

      【解决方案2】:

      因为一些较低值的 Integer 对象被缓存和重用。所以所有较低值的 Integer 对象,比如 6,都指向同一个 Integer 实例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-07
        • 2015-05-21
        • 1970-01-01
        • 2012-04-14
        • 1970-01-01
        • 2015-05-15
        • 2011-01-09
        • 2014-02-02
        相关资源
        最近更新 更多