小编New*_*mit的帖子

这里输出不同的原因是什么?

int a = 2;
int b = a + a;

Class cache = Integer.class.getDeclaredClasses()[0]; 
Field myCache = cache.getDeclaredField("cache"); 
myCache.setAccessible(true);

Integer[] newCache = (Integer[]) myCache.get(cache); 
newCache[132] =  newCache[133];

System.out.printf("%d",b); // 5
System.out.println(b); // 4
Run Code Online (Sandbox Code Playgroud)

在这里,我改变的值cache[132]cache[133]现在,这意味着cache[132] == 5printf()方法它打印5罚款,但println()为什么它打印4应该是5就可以了什么是背后的原因?

java

10
推荐指数
1
解决办法
319
查看次数

标签 统计

java ×1