3 回答

TA贡献1893条经验 获得超10个赞
true
如果被装箱的值p为真、假、字节、\u0000至\u007f范围内的一个字符、或-128至127之间的int或短数,则让r1和r2是p两个装箱转换的结果。r1=r2的情况总是如此。
理想情况下,装箱给定的原语值p,总是会产生相同的引用。在实践中,使用现有的实现技术,这可能是不可行的。上述规则是一种务实的妥协。上面的最后一个子句要求某些公共值总是被装箱到不可区分的对象中。实现可能缓存这些,懒惰或急切。
对于其他值,此公式不允许程序员对装箱值的标识进行任何假设。这将允许(但不需要)共享部分或所有这些引用。
这确保了在大多数常见情况下,行为将是理想的行为,而不会造成不适当的性能损失,特别是在小型设备上。例如,内存有限的实现可能会缓存所有字符和短路,以及-32K-+32K范围内的整数和多头。

TA贡献1871条经验 获得超8个赞
public class Scratch{ public static void main(String[] args) { Integer a = 1000, b = 1000; //1 System.out.println(a == b); Integer c = 100, d = 100; //2 System.out.println(c == d); }}
产出:
falsetrue
Integer a = new Integer(1000);Integer b = new Integer(1000);
JVM
Integer
JVM
.
布尔型 字节 字 零万
到 \u007f
(小数点7F为127) 短小和整数 -128
到 127
添加回答
举报