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:就是方法中的参数和变量,我知道在内存中方法的参数和变量都是局部变量都是放在栈内存中的
基本类型的数据值也是在栈内存中存储,字符常量是在常量池中存储
但是这里的方法内部的对象在堆栈中如何存储的呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。