目录
🦖 3.3.1 怎么判定某个对象是否是垃圾 (引用计数/可达性分析)
🦖 3.3.2 具体是怎么回收的 (标记清除/复制算法/标记整理/分代回收)
🐲 1. JVM 内存划分
Java程序, 就是一个名字为 Java 的进程. 这个进程就是所说的 "JVM"
JVM 就会先从操作系统这里申请一大块内存空间,在这个基础上再把这个内存空间划分成几个小的区域
🐲 2. JVM 类加载
🦄 2.1 类型加载是干啥的
🦄 2.2 类加载的简略流程
🦄 2.3 什么时候会进行类加载
🦄 2.4 双亲委派模型
🐲 3. GC 垃圾回收机制
🦄 3.1 GC 是什么
🦄 3.2 GC 回收哪部分内存
🦄 3.3 GC 具体是怎么回收的
🦖 3.3.1 怎么判定某个对象是否是垃圾 (引用计数/可达性分析)
两种常见的,判定对象是否存在引用的方法
1. 引用计数 [不是 JVM 采取的方法, 比如 Python,PHP]
2. 可达性分析 [是 JVM 采用的方法, java]
🦖 3.3.2 具体是怎么回收的 (标记清除/复制算法/标记整理/分代回收)
(1) 标记清除
(2) 复制算法
(3) 标记整理
(4) 分代回收
根据对象的年龄进行分类,把堆中的对象分为了,
新生代(年龄小的对象) 和 老年代 (年龄大的对象)
但是还有个特殊情况就是