孙海峰的博客

今日原上草,明日炉中烧。

JAVA 对象内存管理
在JAVA中,JVM会将申请的内存从逻辑上划分为三个区域:堆、栈、方法区。这三个区域分别用于存储不同的数据。

JVM在其内存空间开辟了一个称为“堆”的存储空间,这部分空间用于存储使用new关键字所创建的对象。代码如下:
Cell   c  = new  Cell ();

栈中的对象有引用则代表不是垃圾

当声明好对象之后,对该对象(堆中的Cell)的访问需要依靠引用变量(栈中的c),那么当一个对象没有任何引用时,该对象被视为废弃的对象,属于被回收的范围,同时该对象中的所有成员变量也随之被回收。

如下的代码,演示了对象不再被引用:

Cell   c  =  new  Cell();
c = null

堆中的对象不再有引用则视为垃圾

每次new一个新的对象都会生成一个新的对象存入堆中,方法区只有一个,无论new多少个新的对象,方法区都不会改变。方法区读取该类的.class文件中的方法后就不会再改变。

每次new 都会生成一个新的对象放入堆中

调用方法区中的方法,栈会自动产生一个栈桢去指向这个方法,用完后栈桢自动消失

调用方法栈中会自动产生一个栈桢去指向这个方法

阅读更多
版权声明:本文为博主原创文章,转载请注明。 https://blog.csdn.net/shf4715/article/details/46823083
个人分类: JAVASE
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

JAVA 对象内存管理

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭