|
1 |
| -<!-- @import "[TOC]" {cmd="toc" depthFrom=1 depthTo=6 orderedList=false} --> |
2 |
| - |
3 |
| -<!-- code_chunk_output --> |
4 |
| - |
5 |
| -- [JVM 垃圾回收](#jvm-垃圾回收) |
6 |
| - - [写在前面](#写在前面) |
7 |
| - - [本节常见面试题](#本节常见面试题) |
8 |
| - - [本文导火索](#本文导火索) |
9 |
| - - [1 揭开 JVM 内存分配与回收的神秘面纱](#1-揭开-jvm-内存分配与回收的神秘面纱) |
10 |
| - - [1.1 对象优先在 eden 区分配](#11-对象优先在-eden-区分配) |
11 |
| - - [1.2 大对象直接进入老年代](#12-大对象直接进入老年代) |
12 |
| - - [1.3 长期存活的对象将进入老年代](#13-长期存活的对象将进入老年代) |
13 |
| - - [1.4 动态对象年龄判定](#14-动态对象年龄判定) |
14 |
| - - [1.5 主要进行 gc 的区域](#15-主要进行-gc-的区域) |
15 |
| - - [2 对象已经死亡?](#2-对象已经死亡) |
16 |
| - - [2.1 引用计数法](#21-引用计数法) |
17 |
| - - [2.2 可达性分析算法](#22-可达性分析算法) |
18 |
| - - [2.3 再谈引用](#23-再谈引用) |
19 |
| - - [2.4 不可达的对象并非“非死不可”](#24-不可达的对象并非非死不可) |
20 |
| - - [2.5 如何判断一个常量是废弃常量?](#25-如何判断一个常量是废弃常量) |
21 |
| - - [2.6 如何判断一个类是无用的类](#26-如何判断一个类是无用的类) |
22 |
| - - [3 垃圾收集算法](#3-垃圾收集算法) |
23 |
| - - [3.1 标记-清除算法](#31-标记-清除算法) |
24 |
| - - [3.2 标记-复制算法](#32-标记-复制算法) |
25 |
| - - [3.3 标记-整理算法](#33-标记-整理算法) |
26 |
| - - [3.4 分代收集算法](#34-分代收集算法) |
27 |
| - - [4 垃圾收集器](#4-垃圾收集器) |
28 |
| - - [4.1 Serial 收集器](#41-serial-收集器) |
29 |
| - - [4.2 ParNew 收集器](#42-parnew-收集器) |
30 |
| - - [4.3 Parallel Scavenge 收集器](#43-parallel-scavenge-收集器) |
31 |
| - - [4.4.Serial Old 收集器](#44serial-old-收集器) |
32 |
| - - [4.5 Parallel Old 收集器](#45-parallel-old-收集器) |
33 |
| - - [4.6 CMS 收集器](#46-cms-收集器) |
34 |
| - - [4.7 G1 收集器](#47-g1-收集器) |
35 |
| - - [4.8 ZGC 收集器](#48-zgc-收集器) |
36 |
| - - [参考](#参考) |
37 |
| - |
38 |
| -<!-- /code_chunk_output --> |
39 |
| - |
40 |
| - |
41 |
| -# JVM 垃圾回收 |
| 1 | + |
| 2 | +# JVM 垃圾回收详解 |
42 | 3 |
|
43 | 4 | ## 写在前面
|
44 | 5 |
|
|
0 commit comments