首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JAVA或C的最基本的概念,困惑中……,

2011-12-05 
JAVA或C的最基本的概念,困惑中……,请指教?这样的代码:inti0while(i 3){intj1i++}由于循环,那么j是不

JAVA或C的最基本的概念,困惑中……,请指教?
这样的代码:
int   i=0;
while(i <3){
      int   j=1;
      i++;
}


由于循环,那么j是不是被重复定义了三次?还是一次?编译器会报错吗?(我在JDK中编译时没报错),在内存中j是不是占用了三份的内存?

[解决办法]
最终j只有一个值是1,编译不会出错,也不会分配三个内存
[解决办法]
名义上的j被定义了3次,但每次都是一个新的j;
局部变量,出了这个大括号他就失去了意义;
名义上的j是占用了3份内存,但每个占用内存的“j”不是同一个“j”,
出了大括号,系统就收回了内存(虚拟机操作当然是延迟的)
[解决办法]
这是必然的
JAVA的变量的作用域就是大括号为界限.

热点排行