jvm運行時記憶體解析,jvm運行記憶體解析

來源:互聯網
上載者:User

jvm運行時記憶體解析,jvm運行記憶體解析

一、jvm的概念

  在瞭解jvm的概念之前,我們先來瞭解java平台的邏輯結構,圖片來自《深入java虛擬機器》

  

 

  我們可以看到jdk包含了jre,java語言和java開發工具和Api,jre包含了java啟動並執行基礎類庫和java虛擬機器,java虛擬機器支撐著java程式的運行。

  jvm(java virtual machine)翻譯為java虛擬機器,從字面上來理解,jvm就是一個虛擬機器,其實類似於一個作業系統,通過軟體去虛擬出一個虛擬機器,協助我們管理電腦的記憶體和調用電腦的硬體等等。而jvm就是java程式運行時的虛擬機器,在java程式運行時,jvm將java位元組碼檔案轉換成當前物理機認識的機器語言並且管理程式運行時候的記憶體,執行當前程式的代碼,調用相關的硬體,從而得到程式啟動並執行結果。

二、java程式的工作原理。

  java程式源檔案(.java)由java編譯工具編譯成.class檔案,jvm中的類載入器讀取.class中的位元組碼內容,並執行其中的位元組碼指令,在此期間,jvm還兼顧著管理java程式的運行記憶體,通過作業系統來調用相關硬體。

  

三、jvm運行時記憶體分布

  jvm的運行過程中將java程式運行時資料區分為以下幾個部分:

   

  

  (1)程式計數器:儲存虛擬機器位元組碼執行的地址
  (2)java虛擬機器棧:java方法運行時的局部變數表,運算元棧,方法出口等
  (3)本地方法棧:類似於java虛擬機器棧,運行Native本地方法時儲存局部變數表,運算元棧,方法出口等
  (4)方法區:存放程式的常量,靜態變數,類載入後的資訊,即時編譯器編譯後的代碼。
  (5)java堆:是虛擬機器中最大的一塊記憶體,用於存放對象執行個體
  (6)運行時常量池:方法區的一部分,存放程式運行時的常量和符號引用。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.