JVM學習筆記

lwx_R發表於2024-04-17

1.執行時資料區

1.2 執行時資料區及執行緒概述

JVM將記憶體劃分為倆種型別的資料區域

  • 執行緒共享:JVM啟動時建立,退出時才銷燬
  • 執行緒私有:執行緒建立時建立,執行緒退出時銷燬

1.2.1 執行時資料區

JVM記憶體佈局規定了Java執行過程中記憶體申請,分配,管理的策略,保證高效執行。
不同JVM在記憶體劃分和管理機制方面有部分差異,探討經典JVM佈局HotSpot
劃分,執行緒共享為堆區,方法區,其他私有

  • 本地方法棧
  • 程式計數器
  • 虛擬機器棧:以棧幀為基本單位構成,棧幀包括區域性變數表,運算元棧,動態連線,方法返回地址,附加資訊
  • 堆區:新生代,老年代
  • 方法區

1.2.2 執行緒

在HotSpot中,每個執行緒都與作業系統本地執行緒直接對映。OS將執行緒排程到可用的CPU上,本地執行緒建立成功,呼叫Java執行緒中run方法。
當正常執行結束(未出現異常,捕獲了異常),Java執行緒和本地執行緒都會被回收,並釋放相應資源。
出現未捕獲異常,Java執行緒終止,本地執行緒再決定JVM是否需要終止,當只有守護執行緒時,JVM自動退出

  • 守護執行緒:系統性服務,垃圾回收執行緒,編譯執行緒,手動建立守護執行緒
  • 非守護執行緒:使用者執行緒,系統工作執行緒

相關文章