内容简介:垃圾回收 GC (Garbage Collection),回收的目的在于 清理不再使用的对象。GC 通过确定对象是否被活动对象引用来确定是否收集该对象。GC 首先要判断 该对象是否可以收集。常用的两种方法:
垃圾回收 GC (Garbage Collection),回收的目的在于 清理不再使用的对象。GC 通过确定对象是否被活动对象引用来确定是否收集该对象。GC 首先要判断 该对象是否可以收集。
常用的两种方法:
-
引用计数法
这种方法是属于早期策略。其中,堆中的每个对象都有一个引用计数,当对象A创建,对象会被分配一个变量,初始化为 1 ,当任何变量被赋值为这个对象的引用时,计数+1(a = b,则b引用对象计数+1)。当对象引用计数值为 0 时,则会被 GC 收集。
- 优点:引用计数收集器可以很快地执行,交织在程序运行中。
- 缺点:无法检测出循环引用。
- 跟踪收集器
- 如今JVM 采用引用遍历,沿着整个对象图上的每个链接,递归确定可到达的对象,若对象不能从根对象到达,则会将它作为垃圾 收集。
- 在遍历对象时,标记能到达的对象进行。然后GC删除不可达到的对象,这样会导致内存分为一小段,需要重新整合。
- 在执行时,需要停止其他活动,只有GC运行,多线程会增加效率。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。