Java中间缓存变量机制

这种不同是因为在c语言中,每个变量在它的生命周期内的每个时间点都只能有一个唯一的值。因此变量在每一次自增运算时,变量所对应内存区域的内容就被重写了。

而在java中,执行sum1=(i++)+(i++);创建了2个临时的整型变量对象,对来存储每次自增运算的结果。

java采用了这种中间缓存变量的机制

#include <stdio.h>
#include <iostream>

using namespace std;

int main()
{
    int i=0;
    int sum=(i++)+(i++);
    cout<<"i="<<i<<"   sum="<<sum<<endl;
    i=0;
    for (int j=0;j<100;j++)
    {
        i=i++;
    }
    cout<<i<<endl;
    return 0;
}
result:i=2; sum=0;
public class TestClass3 {

    public static void main(String[] args){
        int j=0;
        
        for (int i = 0; i < 100; i++) {
            j=j++;
        }
        int sum=(j++)+(j++);
        System.out.println(sum);
        System.out.println(j);
    }
}

result: sum=1;j=2

Java的中间变量缓存机制

tmp=j;

j=j+1;

j=tmp;

原文地址:https://www.cnblogs.com/csxf/p/3489316.html