Java中的自增自减

情况①:

for (int i = 0; i < 100; i++) {
    j = 1 + j++;
}
System.out.println(j);  

结果是 0 !! 这是由于在进行后自增/自减(j--  j++)操作的时候,先开辟一块新的内存空间来保存运算之间的 j 值,然后再进行++操作,最后将新的内存空间保存的值赋值给等式的左边。

j = j++ 相当于:
temp = j; // 开辟新的内存空间保存原来的 j 值
j = j + 1; // 进行++操作
j = temp; // 将新内存空间保存的值赋值给等式左边

情况②:

int j = 1;
int x = j++ + (j+2);  // 在第三个+之前 j=1, 在第三个+之后 j=2  即 x = 1 + (2+2);
System.out.println(x);  // 结果是 5 

情况③:

j = 1;
j = ++j + j++;   // 相当于 j = 2 + j(此时j=2)++;
System.out.println(j);  // 结果是 4 

和情况①相同:

j = 2 + j++ 相等于:
temp = j;
j = j + 1;
j = 2 + temp;

情况④:

int j = 1;
j = j++ + ++j + j++ + j++;  // j = 1 + 3 + 3 + j(此时j=4)++
System.out.println(j);   //结果是11 
原文地址:https://www.cnblogs.com/DDiamondd/p/11523377.html