黑马程序员技术交流社区
标题:
学习面向对象时,遇到一个存储问题,请各位大虾指点
[打印本页]
作者:
傻瓜一点红
时间:
2013-5-2 18:23
标题:
学习面向对象时,遇到一个存储问题,请各位大虾指点
本帖最后由 傻瓜一点红 于 2013-5-3 00:15 编辑
用类创建一个对象后,会在堆内存中开辟一个空间来进行存储相关属性和函数,在栈内存中存放局部变量,但是存储的是这个对象,请问那这个类是存放在哪呢?调用这个类来创建对象的时候是从哪调用的呢?有点懵,请大虾指教
作者:
chouwayメ
时间:
2013-5-2 20:15
看毕老师画的 方法区 。那个概念我网上搜了下:
方法区是 在一个jvm实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中。类型信息是由类加载器在类加载时从类文件中提取出来的。类(静态)变量也存储在方法区中。
作者:
梁海君
时间:
2013-5-2 20:32
内存结构 --> 栈:局部变量都会在栈内存中生成,数据使用完毕,会自动释放;
堆:通过new出来的会在堆内存中生成,都有默认的初始化值,若没有被使用,会被垃圾回收机制清除。
方法区:类变量随着类的加载而存在于方法区中,类中的方法、共享数据存在该区域中。
作者:
xiewen
时间:
2013-5-2 23:55
对象初始化过程.jpg
(90.22 KB, 下载次数: 0)
下载附件
2013-5-2 23:54 上传
对象调用成员过程图解.jpg
(148.17 KB, 下载次数: 0)
下载附件
2013-5-2 23:54 上传
看毕老师的这连个图就知道了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2