jvm探秘之一:記憶體概況

來源:互聯網
上載者:User

標籤:

           jvm記憶體大致可以分為六大塊:

           堆,虛擬機器主要記憶體,可以形象的說,堆是對象的存放庫,幾乎所有的對象執行個體和數組都在此分配記憶體,當然也死於此,jvm記憶體回收機制(簡稱GC)主要處理的就是這個地方。它被所有線程共用,沒錯,這可能造成一些問題,此處留到討論對象時再說。堆的儲存空間在物理上不要求一定連續,實際上它只要讓我們看起來是連續的就可以了(虛擬化記憶體),一般情況下,堆的大小是可以擴充的,當然如果電腦記憶體滿了,導致堆無可申請的話,對象建立就失敗了,那麼就會拋出outofmemeryError異常。

          方法區,顧名思義,它就是用來儲存方法的(當然還有別的=。=),它和堆一樣被線程共用,負責儲存載入的類資訊、常量、靜態變數、即時編譯器編譯後的代碼等資料(注意,JAVA代碼通常是即時編譯的,即用到哪裡就編譯哪裡,用的少的就擦掉,用的多的就留下來)。這裡同樣需要GC的回收和處理,其實通常需要回收的僅僅是常量池而已(至於類資訊嗎、、、),方法區和堆一樣,無可擴充時就會拋出outofmemeryError異常。

          本地方法棧,這個地方如果不深入剖析的話,很難理解這是幹什麼用的,因此目前俺只知道它用來儲存本地的方法和服務(只有個模糊的感念憑感覺這像是幹什麼的幹什麼的、、=。=),區別於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.