基本不做回收的區(qū)域
?Java運行時內存區(qū)域中,程序計數(shù)器、虛擬機棧、本地方法棧這3個區(qū)域基本不會被GC。因為這3個區(qū)域隨線程而生,隨線程而亡,棧中棧幀分配對少內存在類結構確定下來的時候就已知了(大體編譯期占用多少內存已知),因此這幾個區(qū)域的內存分配和回收具備確定性。
回收區(qū)域
?Java堆和方法區(qū)。
這部分區(qū)域對象在運行時才知道要分配什么對象,分配多少對象,分配多大對象,因此這部分的分配和回收是動態(tài)的。