您的位置:首页 > 其它

内存分析

2015-11-11 10:10 155 查看


存放:局部变量



存放new出来的对象

方法区

存放:类的信息、static变量、常量池(字符串常量)等

例如



程序以main函数为入口,

1.首先读取到Student类,将类的信息如代码、static常量、常量池存放如方法区,如图所示

2.s1为局部变量,放入栈,s1是引用类型(类似于int、String),占用4个字节,栈比较小

3.new的方法放入堆,调用构造器,建的student对象是类的一个复制,将类的定义复制到堆,包括name :null,Id :0;Age:0,Gender:null;weight:0,并对其初始化赋值,属性越多,占的内存越多,

study()与sayhello()方法赋上地址,指向方法区

4.Student s1=new student();"="赋值 ,将堆中对象的地址值赋给s1;

4.s1.nam e="亚运"通过s1的地址找到name,通过name的地址找到常量池;

以此类推

操作对象就是操作地址

下图为此段代码的对应内存分析图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: