public class Test {
static int j=20;//j内存在方法区的静态区中.为整个类共享的数据.
public static void main(String[] args) {
int i=10;//\栈内存中,生命周期短.
Test t=new Test();
t.method(i);
System.out.println(i);
System.out.println(j);
}
public void method(int x)
{
x=x*2;//改变了i的值,只在当前的代码块中有效.
j=j*2;//改变了j的值,但j是静态的.全局共享.
System.out.println("x"+=x);//这里的值才为运算完的值.
}
}
这个问题我想你应该学习下不同变量的内存分布问题.j为静态的,存在于方法区里的静态区中.生命周期很长.
i为成员变量,存在于栈内存中,当运算完毕后,数据就释放了.生命周期很短.
|