JVM 基础与 GC 垃圾回收详解|可达性分析、分代模型、垃圾收集器、STW大家好,这里是后端基础拾光集。前面两篇我们一起学习了多线程、锁、线程池。线程就是厨房里干活的厨师,厨师干活会不断产生各种食材、半成品,也就是 Java 对象(业务代码里 new User()、new ArrayList<>()、new HashMap<>()等)。 仓库空间(内存)是有限的。如果用过的食材一直堆在仓库不清理,仓库很快堆满,就会出现 OOM 内存溢出,程序崩溃。 这个时候就需要我们的保洁员来做相关的清理工作,GC 就是 JVM 自带的保洁员,专门负责识别废弃对象、清理垃圾,腾出内存空间。