public class Test1 {
public int i;
public String e=new String("123");
public Test2 test2=new Test2();
public void say(){
String str2=new String("abc");
int i=0;
System.out.println(i);
}
public static void main(String[] args) {
Test1 t1=new Test1();
}
}
主函数实例化一个t1对象,
在栈内存中有个t1的引用,在堆内存中有new Test1()对象,
问题来了
1:一般的成员变量我知道是在堆内存中存储,但是引用的对象在堆内存如何表示呢?
public String e=new String("123");
public Test2 test2=new Test2();
难道 e和test2 也会在栈中存储一个引用 然后指向到堆中的对象?
2:就是方法中的参数和变量,我知道在内存中方法的参数和变量都是局部变量都是放在栈内存中的
基本类型的数据值也是在栈内存中存储,字符常量是在常量池中存储
但是这里的方法内部的对象在堆栈中如何存储的呢?