JVM 垃圾回收机制

栏目: Java · 发布时间: 6年前

内容简介:垃圾回收 GC (Garbage Collection),回收的目的在于 清理不再使用的对象。GC 通过确定对象是否被活动对象引用来确定是否收集该对象。GC 首先要判断 该对象是否可以收集。常用的两种方法:

垃圾回收 GC (Garbage Collection),回收的目的在于 清理不再使用的对象。GC 通过确定对象是否被活动对象引用来确定是否收集该对象。GC 首先要判断 该对象是否可以收集。

常用的两种方法:

  1. 引用计数法

    这种方法是属于早期策略。其中,堆中的每个对象都有一个引用计数,当对象A创建,对象会被分配一个变量,初始化为 1 ,当任何变量被赋值为这个对象的引用时,计数+1(a = b,则b引用对象计数+1)。当对象引用计数值为 0 时,则会被 GC 收集。

    • 优点:引用计数收集器可以很快地执行,交织在程序运行中。
    • 缺点:无法检测出循环引用。
  2. 跟踪收集器
  • 如今JVM 采用引用遍历,沿着整个对象图上的每个链接,递归确定可到达的对象,若对象不能从根对象到达,则会将它作为垃圾 收集。
  • 在遍历对象时,标记能到达的对象进行。然后GC删除不可达到的对象,这样会导致内存分为一小段,需要重新整合。
  • 在执行时,需要停止其他活动,只有GC运行,多线程会增加效率。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

软件开发本质论

软件开发本质论

Ron Jeffries / 王凌云 / 人民邮电出版社图灵分社 / 2017-1 / 39

想象你正在攀登一座名为“软件开发”的山峰。本书是与你同登一座山峰的敏捷先驱所带来的话语与图片。他在崎岖的山路边找到相当平坦的歇脚处,画下所见的风景,并写下自己的想法和发现。他瞧见很多条上山的路,愿以此书与你分享哪条路容易、哪条路困难、哪条路安全、哪条路危险。他还想指引你欣赏身后的美景。正是这些美景丰富了你的登山之旅,让你在重重困难中收获成长。 “对于每一位CTO、技术VP、软件产品总......一起来看看 《软件开发本质论》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具