IT屌丝_陈 2016-01-26 09:08 采纳率: 100%
浏览 1710
已采纳

java 变量在堆栈内存的问题

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:就是方法中的参数和变量,我知道在内存中方法的参数和变量都是局部变量都是放在栈内存中的

基本类型的数据值也是在栈内存中存储,字符常量是在常量池中存储
但是这里的方法内部的对象在堆栈中如何存储的呢?

  • 写回答

4条回答

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 刚入职被要求写这种文档,应该如何下手
      • ¥15 最优经济尺寸设计问题
      • ¥15 从多元正态分布中生成3维样本
      • ¥15 GEO下载数据的处理报错 :函数‘Meta’标签‘"data.frame"’找不到继承方法,如何解决?
      • ¥15 android object box 一个实体多个表怎么写
      • ¥15 temux 启用docker 服务失败
      • ¥15 Flask 使用celery发送邮件出现‘目标计算机积极拒绝‘
      • ¥15 超时跳出方法代码的返回值问题
      • ¥15 汇编语言程序设计设计,ascii码求数,再求数的BCD码
      • ¥30 Mask rcnn训练自己的数据集出现问题!