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

垃圾对象回收

1.如何判断对象可以被回收

对象是否可以被回收通常由垃圾回收器决定。

垃圾回收器使用一种称为"可达性分析"的算法来确定对象是否可被回收。
可达性分析是指如果一个对象无法从任何GCRoots直接或间接访问到,它就被认为是不可达的,可以被垃圾回收。

1.1 GC Roots

GC Roots是一组特殊的引用,它们被认为是程序中可访问对象的起始点,即从这些引用开始,可以追踪到所有仍然被程序引用的对象。

1.2 GC Root 引用类型

  • 局部变量引用
    在方法中定义的局部变量,包括方法的参数和局部变量,通常被视为GC Roots。这些变量的引用指向了对象的实例。
  • 活动线程引用
    正在运行的线程的引用通常被视为GC Roots。线程本地存储中的对象也是如此。
  • 静态变量引用
    静态变量是类的一部分,它们的引用也被视为GC Roots。静态变量存在于类加载器的内存中。
  • JNI 引用
    通过Java Native Interface(JNI)创建的本地代码引用也可以被视为GC Roots。这些引用连接了Java堆内存和本地代码的内存。
  • 虚拟机引导类加载器
    虚拟机内部使用的类加载器引用也是GC Roots。它们通常是一些核心类或库。
http://www.xdnf.cn/news/372619.html

相关文章:

  • 从杰夫・托尔纳看 BPLG 公司的技术创新与发展
  • 学习黑客5 分钟深入浅出理解Linux Packages Software Repos
  • vue 中的ref
  • Java大师成长计划之第17天:锁与原子操作
  • 深入浅出 JDBC 与数据库连接池
  • 嵌入式开发学习(阶段二 C语言基础)
  • Java 24新特性深度解析:从优化技巧到高手进阶指南
  • PyQt5基本窗口控件(QWidget)
  • 嵌入式STM32学习——继电器
  • 数据分析-图2-图像对象设置参数与子图
  • 深入浅出之STL源码分析3_类模版实例化与特化
  • 【Java ee初阶】网络原理
  • Spring Boot 中如何启用 MongoDB 事务
  • 教育系统源码如何支持白板直播与刷题功能?功能开发与优化探索
  • 如何通过ABAP获取SAP生产订单的目标成本
  • 《AI大模型应知应会100篇》第53篇:Hugging Face生态系统入门
  • 【Web前端开发】HTML基础
  • Go语言——goflow工作流使用
  • WPF之集合绑定深入
  • 计算机网络:什么是Mesh组网以及都有哪些设备支持Mesh组网?
  • drf 使用jwt
  • cv_connection (像halcon一样对区域进行打散)
  • .Net Mqtt协议-MQTTNet(一)简介
  • 养生:为健康生活筑牢根基
  • 路由重发布
  • 软件测试——用例篇(3)
  • 嵌入式与物联网:C 语言在边缘计算时代的破局之道
  • OSPF不规则区域划分
  • Win10无法上网:Windows 无法访问指定设备、路径或文件。你可能没有适当的权限访问该项目找不到域 TEST 的域控制器DNS 解析存在问题
  • 大节点是选择自建机房还是托管机房