@Test
public void test(){
Map<String, Integer> a = new HashMap<>();
a.put("x", new Integer(0));
Integer i = a.get("x");
a.put("x", i++);
i = a.get("x");
a.put("x", i++);
i = a.get("x");
a.put("x", i++);
System.err.println(i);
}
上面的代码的输出是1而不是0我不明白为什么。有人可以解释发生了什么事吗? Java的一些字节码优化导致这种状态?为什么输出下面的代码1而不是0?
你增量,所以你为什么想到要打印0? – tkausl
请使用调试器。这是了解代码片段工作原理的有效方法。 –