Java的垃圾回收机制
2010-03-19 11:30
134 查看
Java是如何查找存活的对象或是垃圾?
首先,Java从存储着引用的栈或静态存储区开始,遍历每一个引用,对于每个引用,垃圾回收器会追踪其对象,如果对象之中包含着其他引用(加入为A对象的引用),则继续追踪A对象的引用,直至遍历完成所有的引用。在该方式下,垃圾是永远不会被追踪到的。
Java采用何种技术进行垃圾回收?
在上述前提下,Java采用一种称为自适应的垃圾回收技术。一般有停止-复制(stop-and-copy)和标记-清除(mark-and-sweep)两种方法。
对于stop-and-copy方式,Java虚拟机会将所有存活的对象拷贝至另一个新堆,未被拷贝的都是垃圾。需要注意的是,移至新堆的时候所有指向这些对象的引用均要修正。
对于mark-and-sweep方式,也是从栈和静态区出发,遍历所有引用,对于每个存活的对象都加上标记,直至遍历完毕,最后,没有被标记的对象将会被释放,该过程不会进行复制。
首先,Java从存储着引用的栈或静态存储区开始,遍历每一个引用,对于每个引用,垃圾回收器会追踪其对象,如果对象之中包含着其他引用(加入为A对象的引用),则继续追踪A对象的引用,直至遍历完成所有的引用。在该方式下,垃圾是永远不会被追踪到的。
Java采用何种技术进行垃圾回收?
在上述前提下,Java采用一种称为自适应的垃圾回收技术。一般有停止-复制(stop-and-copy)和标记-清除(mark-and-sweep)两种方法。
对于stop-and-copy方式,Java虚拟机会将所有存活的对象拷贝至另一个新堆,未被拷贝的都是垃圾。需要注意的是,移至新堆的时候所有指向这些对象的引用均要修正。
对于mark-and-sweep方式,也是从栈和静态区出发,遍历所有引用,对于每个存活的对象都加上标记,直至遍历完毕,最后,没有被标记的对象将会被释放,该过程不会进行复制。
相关文章推荐
- 二.Java的初始化机制、垃圾回收机制和内存分配机制
- Java垃圾回收机制(GC)
- 根据Java垃圾回收机制探讨内存优化
- java垃圾回收机制--CMS
- Java 垃圾回收机制
- java 垃圾回收机制浅析
- JVM详解之Java垃圾回收机制详解和调优
- (转)Java 内存区域分配和垃圾回收(GC)机制
- Java的垃圾回收机制
- Notes: Garbage Collection in Java(Java的自动垃圾回收机制)
- Websphere 6.0 设置垃圾回收机制 出现 java launcher 已停止工作 产生 错误代码:40000015
- JAVA垃圾回收机制
- 浅析Java内存区及其垃圾回收机制
- JAVA垃圾回收机制
- Java中的垃圾回收机制
- java 垃圾回收机制
- 成为Java GC专家(1):深入浅出Java垃圾回收机制
- Java的垃圾回收机制详解和调优
- 全面分析Java的垃圾回收机制
- 细述 Java垃圾回收机制→How Java Garbage Collection Works?