i++的java底层原理

  1. i++问题
    int i = 0;
    i = i++;
    print(i) // 0

    解释:
    i++中有两个临时变量,所以上式编译之后会成为

    int i = 0;
    byte temp1 = i;
    int temp2 = i + 1;
    i = temp1;
    print(i)

    但是其真正的字节码中只有i一个变量,使用栈完成上述结果(复习栈帧的内容)

Leave a Comment