0是在栈中的。
java中八大基本类型都是值传递的,比如
public class Test1 {
public static void main(String[] args) {
int i=1;
add(i);
System.out.println(i);
}
public static void add(int i){
i++;
}
}
运行结果为1
值传递确实是将值复制给方法中的局部变量
比起这个以后肯定会碰到String的值传递,因为String类型一旦创建就无法改变,是final类,所以虽然String是引用类型,但传值规律是和基本类型一样的。
那要看你的数据是的作用域了,如果是方法变量,当程序执行到方法体时,在栈中开辟一块区域存储方法相关的数据,当你的方法执行完了,这块内存也被回收,如果是类里的成员变量就不是这样了,和对象一起存在堆里