《Java程序员面试宝典》读书笔记1
今天读书发现一个很有趣的问题
请问以下程序会输出什么?
public class Test2 {
public static void main(String[] args) {
int j = 0;
for (int i = 0; i < 100; i++) {
j = j++;
}
System.out.println(j);
}
}
输出的结果是:0
刚看到的时候觉得很不可思议,我选的答案是100,然后看了书上给的解释是什么中间缓存变量,结果看的一塌糊涂,最后发现其实解释起来很简单,完全不用书上写的那一堆乱七八糟的东西,当执行J= j++时,是先将等于0的j赋值给j,然后将后边的j自增,但是下一次执行的时候其实j还是等于0;在别的地方都解释为java中间缓存变量,反正我是没看明白和这个有什么关系,难道其他语言就不是这样么?
纵千难万险,亦不忘初心