int i =0; //i是成员变量。被放在堆里。如果栈指向对象的引用为null,系统会定时进行垃圾清理。
for (j=0;j<10;j++){ //这里j是局部变量。所谓局部变量,会放在栈内存中。随着方法,或者循环体执行完,就会释放。意思就是这里,for循环一结束,j就被释放了。没有
//了,所以后面是输出j是输出不来的。
i=i+j;
int i =0;
for(int j=0;j<10;j++)
{
i=i+j;
}
System.out.println("i="+i+"j="+j)
上面的i是成员变量,是存储在堆内存中的,而j是局部变量是存储在栈内存中的,最终的结果是无法编译的.两者的生命周期不同,成员变量的生命周期比局部变量长,在JAVA中对于这个局部变量的进入和弹出有专业的描述词为"进栈和弹栈",J在这个循环体中出来后就直接弹栈了被当做垃圾释放了,所以根本没办法找到J