解析:
Java爲什麼會有垃圾回收機制?這裏的垃圾指的是內存中沒有人再去使用的垃圾,涉及到JVM內存管理的知識,可參考《Java程序性能優化 讓你的Java程序更快、更穩定》第5章JVM調優。
我解決這個問題的步驟如下:
1 理解JVM內存管理模型。
2 在這個問題上逐步提出更加細緻的問題,並一一回答。
2.1 JVM 內存空間是如何劃分的?
2.1.1 JVM內存空間是如何劃分的?
2.1.2 這些不同的內存空間各有什麼特性?
2.2 哪些內存需要垃圾回收?
1.1.1 程序計數器,Java虛擬機棧,本地方法棧,Java堆,方法區都需要垃圾回收嗎?
2.3 什麼時候回收。
2.3.1 有哪些情況會觸發垃圾回收?
2.3.2 什麼情況下會觸發Full GC
2.4 如何回收。
2.4.1 程序計數器,Java虛擬機棧,本地方法棧,Java堆,方法區分別是如何回收的?
2.4.2 垃圾回收算法有哪些?各有什麼特點/優缺點?
2.4.3 垃圾回收器有哪些?原理是什麼?
2.4.4 不同的內存空間如何選擇垃圾回收器?
3 拓展的問題
3.1 內存溢出有哪些情況?
3.2 JVM調優相關:給你XXX配置的服務器,如何設置JVM參數,以達到最優配置
網上已經存在很多這些問題的解答:
(2) http://www.cnblogs.com/dingyingsi/p/3760447.html