Java千百问_07JVM架构(008)_java垃圾回收机制是什么
Posted 幽灵雾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java千百问_07JVM架构(008)_java垃圾回收机制是什么相关的知识,希望对你有一定的参考价值。
1、如何判断垃圾对象
垃圾收集的第一步就是先需要算法来标记哪些是垃圾,然后再对垃圾进行处理。通常的编程语言都会用以下算法之一进行判断:
- 引用计数(ReferenceCounting)算法
这种方法比较简单直观,核心思路是,给每个对象添加一个被引用计数器,被引用时+1,引用失效-1,等于0时就表示该对象没有被引用,可以被回收。
FlashPlayer/Python使用该算法,简单高效。但是,Java/C#并不采用该算法,因为该算法没有解决对象相互引用的问题,即:当两个对象相互引用且不被其它对象引用时,各自的引用计数为1,虽不为0,但仍然是可被回收的垃圾对象。
- 根搜索(GC Roots Tracing)算法
基本原理是:GCRoot对象作为起始点(根)。如果从根到某个对象是可达的,则该对象称为可达对象(存活对象,不可回收对象)。否则就是不可达对象,可以被回收。</
以上是关于Java千百问_07JVM架构(008)_java垃圾回收机制是什么的主要内容,如果未能解决你的问题,请参考以下文章
Java千百问_07JVM架构(006)_java堆和栈有什么区别
Java千百问_07JVM架构(017)_jvm常见配置都有哪些
Java千百问_07JVM架构(018)_如何监控jvm的运行情况
Java千百问_07JVM架构(016)_java内存如何优化