天天看點

java進階:【java記憶體結構】

前言

1.每一個方法執行時,都有一個獨立的記憶體空間,給記憶體空間在方法執行完畢之後,随之被回收。這個入地的記憶體空間稱之為棧幀。

2.堆存放的是目前java程式執行時共享資料。在堆中,如果一個對象沒有被變量指向,該變量就符合垃圾回收機制的條件。

正文

java進階:【java記憶體結構】

1.方法區:用來存儲代碼。将.class檔案加載到記憶體中,并存儲在方法區

2.棧:用來存儲局部變量,形參,方法的傳回值,中間運算結果

3.堆:成員變量,數組對象,方法的引用

4.本地方法區:存儲連結本地方法相關的代碼

5.執行過程:

執行了java指令之後,classloader将.class檔案,加載到記憶體中并存儲在方法區。

然後JVM調用main方法,順次執行代碼。

将局部變量存儲在棧區中,将引用變量是指向内容存儲在堆區中。

引用變量所指向的空間,用來存儲hashcode碼,順次執行到mian方法完畢。

再通過classLoader将.class檔案内容在JVM所占用的空間全部解除安裝。

繼續閱讀