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] == 5
在printf()方法它打印5罚款,但println()为什么它打印4应该是5就可以了什么是背后的原因?
java ×1