public class Main {
static int j = 3;
public static void main(String args[]) {
int i = 5;
Main p = new Main();
p.amethod(i);
System.out.println(i + " and " + j);
}
public void amethod(int x) {
x = x * 2;
j = j * 2;
}
}
调用amethod之后,在这个函数内部,x=10,但是它没有返回;当这个函数执行完后,x的内存就被释放了,x就不存在了,因此对i没有影响,i还是等于5。j因为被声明为static,它是直到这个程序结束才会被释放,所以j=j*2=6,所以是5and6