坦牛手游网

新闻

栏目

roots攻略搜寻锈湖攻略

2023-01-25 05:07:42

垃圾回收(GC)是Java不同于其他编程语言

哪些内存需要回收,何时可以回收

今天,我们将讨论如何确定谁可以回收JVM

有两种算法

引用计数算法,一致性分析算法

引用计数算法

每次向对象添加引用计数器时,该计数器都会在引用被复盖时插入一个引用,只要该对象的引用始终为零,该计数器就会降到1

该算法简单、高效但存在一定的缺陷

一般的商业JVM是不会这样做的

符合性分析

出于一般商业目的,JVM使用辅助工具分析来确定对象是否可回收

算法的基本思想是

从称为“初始节点集”的一系列节点开始,通过引用关系向下搜索路径称为“引用链”

当你第一次看到这句话的时候是不是很惊讶一开始我不知道作者是什么意思后来我慢慢明白了

若要了解辅助功能演算法,您必须先了解几个问题

65432 + 4R

1.第一名是什么

对象表示两者之间存在直接或间接的引用关系

root或GC root表示对象是直接或间接的引用关系

下面的代码

public class my object { private string object name//object private my object reflection//依赖对象public my object(string object name){ this . object name = object name })public my object(string object name,我的string object refresh){ this . object name = object name这是一个对象名称。刷新=刷新}公共静态声音主(字符串)

假设a是gc roots,b是c,d和e不可用

2、什么是gc roots

在垃圾回收过程中,JVM首先查找所有GC根并暂停用户操作并触发STW操作

然后,从GC Roots中搜索这些根节点,释放可访问的对象,并恢复不可访问的对象

爷爷,GC Roots呢

gc roots是确定JVM当前不可回收的对象(如方法字段中的类静态属性所引用的对象)

只有找到这样的对象,无法恢复或恢复对不可恢复对象的依赖

当JVM首先启动GC时,所有用户的工作流都会到达purpose时间点(STW),然后对根节点进行编号,查找所有GC根,以便访问

即使CMS、g对根节点进行编号,像1这样的收藏者也必须停止用户片段

gc roots是一个自定义对象,在Java运行时它必须是程序的根对象

那么,什么样的物体可以这样做呢?GC Roots呢

3.哪些对象可以用作gc roots

gc roots对象可以分为两类:全局对象和运行时上下文释放器

让我们来看看为什么这些对象被认为是gc roots

1.引用方法字段中的静态属性的对象

只要物件本身难以回收,回收条件就非常困难;静态成员不回收

2.方法域常量引用的对象

字串常值也属于一般物件,例如字串常值集区;常数本身在初始化之后不会变更,因此gc roots也是合理的

3.方法堆栈中的帧是本地变量表中引用的对象

在执行阶段,物件是执行阶段方法的执行阶段,它会将方法封装为堆叠影格,并取代堆叠影格

4、引用JNI本地方法堆栈的对象

如前所述,Java方法堆栈中的变量引用本地方法(c,c)堆栈中的变量

5.同时锁定的对象

锁定的物件永远无法复原。目前有一个粒子物件锁。如果GC对象被回收,则不会禁用锁

尾巴吗

也就是说,直接或间接30列出根节点,以确保应用程序正常运行

相关文章

最新游戏

猜你喜欢

  • 搜寻

  • 攻略

  • roots

  • 手游开服

  • 新游开测

  • 绝世天尊

    角色扮演 | 306.05MB | 下载1528次

    新服:灭运

  • 大秦风云录

    角色扮演 | 224MB | 下载1188次

    新服:天外

  • 英雄血战

    角色扮演 | 96MB | 下载1735次

    新服:力转乾坤

  • 盛世明朝

    策略经营 | 114.87MB | 下载1966次

    新服:志安远村