运行下面这段代码,其结果是什么呢?
结果是:0 上述类似代码在C/C++中运行结果是:1,这是为什么呢? 这是因为Java使用了中间缓存变量机制:
jvm里面有两个存储区,一个是暂存区(是一个堆栈,以下称为堆栈),另一个是变量区。 jvm会这样运行这条语句: 步骤1 jvm把i的值(其值是0)拷贝到临时变量区(temp=0)。 步骤2 变量区i的值加1,这时i的值是1。 步骤3 返回临时变量区(temp)的值,注意这个值是0,没修改过。 步骤4 返回值赋值给变量区的i,此时i的值被重置成0。
以上这篇java中的自增问题介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持程序员之家。 |
小黑屋|在路上
( 蜀ICP备15035742号-1 )
GMT+8, 2025-7-7 01:46
Copyright 2015-2025 djqfx