网络公司做网站,the field wordpress,未来中森网站建设咨询,东道设计是4a公司吗文章目录 前言一、如何确定是垃圾#xff1f;引用计数法根可达路径法 二、GC Root1、以下可作为GC Root对象2、判断可回收#xff1a;GC Root不可达3、真正宣告对象死亡需经过两次标记过程#xff08;重要#xff09; 前言
对于Java两种确定对象为可回收的两种方式#x… 文章目录 前言一、如何确定是垃圾引用计数法根可达路径法 二、GC Root1、以下可作为GC Root对象2、判断可回收GC Root不可达3、真正宣告对象死亡需经过两次标记过程重要 前言
对于Java两种确定对象为可回收的两种方式予以记录
一、如何确定是垃圾
内存中已经不再被使用到的空间就是垃圾
引用计数法根可达路径法
引用计数法 根可达路径法
枚举根节点做可达性分析根搜索路径
二、GC Root
1、以下可作为GC Root对象
虚拟机栈栈帧中的本地变量表中引用的对象。方法区中1.8称为元空间的类静态属性引用的对象一般指被static修饰的对象加载类的时候就加载到内存中。方法区中的常量引用的对象。本地方法栈中的JNInative方法引用的对象。
2、判断可回收GC Root不可达
此对象到GCRoot对象没有引用链此对象到GCRoot对象再也找不到一条可达路径
在可达性分析法中不可达的对象它们暂时处于“缓刑阶段”要真正宣告一个对象死亡至少要经历两次标记过程
3、真正宣告对象死亡需经过两次标记过程重要
可达性分析法中不可达的对象被第一次标记并且进行一次筛选筛选的条件是此对象是否有必要执行 finalize 方法。
当对象没有覆盖 finalize 方法或 finalize 方法已经被虚拟机调用过时虚拟机将这两种情况视为没有必要执行。
被判定为需要执行的对象将会被放在一个队列中进行第二次标记除非这个对象与引用链上的任何一个对象建立关联否则就会被真的回收。