当前位置: 首页 > news >正文

大厂面试题-JVM中的三色标记法是什么?

目录

问题分析

问题答案


题分析

三色标记法是Java虚拟机(JVM)中垃圾回收算法的一种,主要用来标记内存中存活和需要回收的对象。

它的好处是,可以让JVM不发生或仅短时间发生STW(Stop The World),从而达到清JVM存垃圾的目的JVM中的「CMS、G1垃圾回收器」都用到了三色标记法。

下面来看一下这个问题的解答。

题答案

在三色标记法中,Java虚拟机将内存中的对象分为三个颜色:

1.   白色:表示还没有被垃圾回收器扫描的对象;

2.   黑色:表示已经被垃圾回收器扫描过,且对象及其引用的其他对象都是存活的;

3.   灰色:表示已经被垃圾回收器扫描过,但对象引用的其他对象尚未被扫描。

GC开始时(如图),先将所有对象都标记为白色,然后从根对象开始遍历内存中的对象,接着把直接引用的对象标记为灰色。

再判断灰色集合中的对象是否存在子引用,不存在咋放入黑色集合,如果存在,就把子引用对象放入到灰色集合。

按照这样一个步骤不断推导,直到灰色集合中所有的对象变黑后,本轮标记完成。最后,还处于白色标记的对象就是不可达对象,可以直接被回收。

http://www.lryc.cn/news/209008.html

相关文章:

  • Leetcode—121.买卖股票的最佳时机【简单】
  • 【云原生】portainer管理多个独立docker服务器
  • Command集合
  • 【QT开发(17)】2023-QT 5.14.2实现Android开发
  • JVM相关面试题(每日一练)
  • OpenCV 相机相关函数
  • 微信小程序之投票管理
  • 23种设计模式【创建型模式】详细介绍之【建造者模式】
  • [量化投资-学习笔记002]Python+TDengine从零开始搭建量化分析平台-MA均线的多种实现方式
  • c语言 判断两个文件是否相同
  • 【2021集创赛】Arm杯三等奖:基于FPGA的人脸检测SoC设计
  • Java电商平台 - API 接口设计之 token、timestamp、sign 具体架构与实现|电商API接口接入
  • 【带头学C++】----- 1.基础知识 ---- 1.23 运算符概述
  • python爬虫分析基于python图书馆书目推荐数据分析与可视化
  • Java零基础入门-关系运算符
  • 1200*A. Trust Nobody(贪心)
  • 二维码智慧门牌管理系统升级解决方案:采集项目的建立与运用
  • Azure - 机器学习:创建机器学习所需资源,配置工作区
  • 电脑监控软件哪些比较好用
  • 数据结构与算法之排序: 选择排序 (Javascript版)
  • 【前端】NodeJS核心知识点整理
  • 计算机操作系统重点概念整理-第三章 进程同步【期末复习|考研复习】
  • day06-Flex布局
  • 架构整洁之道摘录
  • 流程引擎-自定义函数的应用
  • ChatGLM系列二:ChatGLM2的介绍及代码实践
  • JDBC对数据库进行操作
  • unity 使用Image的RectTransform来进行判断是否点击到
  • 【C++】类与对象 第一篇(class,this)
  • 嵌入式软件工程师面试题——2025校招专题(四)