java虛擬機內存分佈

java虛擬機內存一般分爲以下5部分:

  1. 程序計數器:可以看做當前線程所執行的字節碼的行號指示器。java虛擬機在執行多線程時,同一時刻只能執行一個線程的一條指令,固程序計數器是記錄對應線程所執行到的位置,也就是說每個線程要對應一個程序計數器。如果線程執行的是java方法,計數器顯示的是行號,如果執行的是native的時候,則顯示undefinded,該區域還是唯一一個java虛擬機中沒規定任何內存溢出的區域。

  2. java虛擬機棧:也就是經常說的棧內存,存儲局部變量,其中包括(8大基本數據類型,對象的引用變量等),在編譯時完成分配。

  3. 本地方法棧:與java虛擬機棧類似,不過處理的是native方法。

  4. java堆:存放對象的實例,垃圾回收機制主要負責的區域,當內存不足時,爲拋出OutOfMemberError的異常,屬於線程共享。

  5. 方法區:主要存放類信息和常量,靜態變量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章