【发布时间】:2012-02-27 23:25:36
【问题描述】:
问这个问题有点不好意思,但是下面这段代码sn-p的结果让我难住了:
System.out.println("incrementResultResponses() has been invoked!");
final long oldValue = resultResponses;
final long newValue = resultResponses++;
System.out.println("Old value = " + oldValue);
System.out.println("New value = " + newValue);
输出如下:
incrementResultResponses() has been invoked!
Old value = 0
New value = 0
为什么?并发会对这里的结果有什么影响吗?顺便说一句,resultResponses 是 long。
【问题讨论】:
-
Strange behaviour of the increment operators in Java? 的可能副本 - 可能不是最好的副本,但实际上有数百个。请搜索“[java] post-increment”。
-
@Mat,是的,我的错。如果可能的话,我希望其他人投票关闭这个问题作为重复。
标签: java long-integer increment