JAVA補缺--JVM記憶體模型

來源:互聯網
上載者:User

標籤:對象   方法區   過程   程式   ack   靜態變數   沒有   err   大於   

1.記憶體分區。

  記憶體地區分為五塊:方法區,虛擬機器棧,堆,本地方法棧,程式計數器。

    方法區:線程共用的記憶體地區。儲存已被虛擬機器載入的類資訊,常量,靜態變數,即時編譯器編譯的代碼資料等。而並非儲存的方法代碼。

    虛擬機器棧:JAVA中描述JAVA方法執行的記憶體模型。每個方法建立的時候都會建立一個棧幀,棧幀用於儲存:方法的局部變數,運算元,動態連結,方法出口等資訊。每個方法的執行過程就是棧幀從入棧到出棧的過程。即方法執行完畢後,棧幀即被銷毀。

    堆:同方法區是線程共用的記憶體地區。所有的(new的時候)對象執行個體,數組的建立都要在堆內開闢儲存空間。

    本地方法棧:與虛擬機器棧作用基本相同,只是本地方法棧執行本地方法(native),虛擬機器執行JAVA方法。

    程式計數器:相當於行號計數器,通過改變計數器的值,向下繼續執行程式。

  注意:記憶體回收行程(GC)用來回收的是堆的垃圾資料,當堆中的資料沒有引用的時候回收。虛擬機器棧的資料在方法執行完畢後會自動銷毀棧幀,出棧,不用回收。

  異常類型:

    方法區可能異常:OOM;

    虛擬機器棧:OOM和StackOverflowError線程請求的棧深度大於棧所允許的深度。

    堆:OOM.

    本地方法棧:OOM.

 

JAVA補缺--JVM記憶體模型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.