本文参考自加州伯克利 CS 系主任 Alex Aiken 的 Compiler 课程 (已于 Youtube 下架)
Java 是第一个支持 Garbage Collection (垃圾回收) 的主流语言
Garbage Collection 的方式
- 对于任何一块内存区域,如果这个区域不 reachable,那么这个区域是 garbage
- 有 pointer 指向的区域不一定 reachable,因为指向这个区域的 pointer 可能不 reachable
Java 的问题
如果你创建了一个巨大的 data structure,但是后半段的程序不太使用它,那么这个未被回收的内存会一直存在,直到程序结束