假设我们有两个 Integer 对象:
Integer i=100,j=200;
Run Code Online (Sandbox Code Playgroud)
计算结果是否(j-i)为另一个值为 100 的 Integer Wrapper 对象或一个原语int?
快速测试表明java正在使用整数缓存,并重新使用i:
@Test
public void test() {
Integer i=100, j=200;
System.out.println("i: " + System.identityHashCode(i));
System.out.println("j: " + System.identityHashCode(j));
Integer sub = j-i;
System.out.println("j-i: " + System.identityHashCode(sub));
}
Run Code Online (Sandbox Code Playgroud)
输出:
i: 1494824825
j: 109647522
j-i: 1494824825 <-- same as i
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20719 次 |
| 最近记录: |