《编写高质量代码:改善Java程序的151个建议》之建议七。
学习
自增陷阱代码:
1 2 3 4 5 6 7 8 9 10
| public class Client { public static void main(String[] args) { int count = 0; for (int i = 0; i < 10; i++) { count = count++; System.out.println(i + " : count=" + count); } } }
|
输出:
1 2 3 4 5 6 7 8 9 10
| 0 : count=0 1 : count=0 2 : count=0 3 : count=0 4 : count=0 5 : count=0 6 : count=0 7 : count=0 8 : count=0 9 : count=0
|
分析
代码count = count++;
运行期间详细处理步骤:
- JVM把count值(此时为0)拷贝到临时变量区;
- count值自增1,此时count值就是1;
- 将临时变量区的值赋值给count,此时count值又变成了0;
评论
自增的实现原理不同语言可能不同。。所以这种有点像考试题了!