1. 程式人生 > >java虛擬機器4.垃圾收集演算法

java虛擬機器4.垃圾收集演算法

 java記憶體執行時的各個部分,其中程式計數器、虛擬機器棧、本地方法棧3個區域隨執行緒而生,隨執行緒而滅;棧中的棧幀隨著方法的進入和退出而有條不絮地執行著出棧和入棧操作。每一個棧幀中分配多少記憶體基本上是在類結構確定下來時就已知的(儘管JIT編譯器會進行一些優化,但大體可認為是編譯期可預知的),因此這個幾個區域記憶體的分配和回收都具備確定性。而java堆和方法區則不一樣,一個介面的多個實現類需要的記憶體可能不一樣,一個方法的多個分支需要的記憶體也可能不一樣,我們只有在程式處於執行期間才能知道會建立哪些物件,這部分記憶體的分配和回收都是動態的,垃圾收集器所關注就是這部分記憶體。