mre*_*mre 5 java increment long-integer
在提出这个问题时我有点尴尬,但以下代码片段的结果让我难过:
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);
Run Code Online (Sandbox Code Playgroud)
这输出如下:
incrementResultResponses() has been invoked!
Old value = 0
New value = 0
Run Code Online (Sandbox Code Playgroud)
为什么?并发会对结果有什么影响吗?顺便说一下,resultResponses是一个long.
Jes*_*per 11
后缀++运算符返回旧值(在递增之前).你想使用前缀++:
final long oldValue = resultResponses;
final long newValue = ++resultResponses;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9216 次 |
| 最近记录: |