GC三问: 哪些内存需要回收? 什么时候回收? 如何回收? 程序计数器.虚拟机栈.本地方法栈随线程而生,随线程而灭,栈帧的内存分配在类结构确定下来就已知,在方法结束或者线程结束时就会回收.所以垃圾回收关注的是动态的堆内存. ps. 方法区也能被回收,主要回收废弃常量和无用类,但性价比高,不过多描述. 1.哪些内存需要回收 这个问题的关键就是确定哪些内存是存活着,哪些内存死去(不再会被用到的) 引用计数算法 有引用时就+1,引用失效就-1,计数器为0则可回收 无法回收相互引用的情况 引用分为强引用…