JVM:類加載器,運行時數據區(Java內存),執行引擎,本地接口
運行時數據區(JVM內存/Java內存):
- 堆:對象實例
- 方法區:類信息,常量,靜態變量,編譯后的代碼
- 棧:局部變量表,方法出口
- 程序計數器:行號指示器。循環,跳轉等基礎指令
- 本地方法棧:VM調用native方法
執行引擎:
- gc
- 編譯器
順便說一下堆棧區別:
- 物理地址
- 堆不連續,棧連續
- 內存
- 堆運行時確認,大小不固定
- 棧編譯時確認,大小固定
- 存放內容
- 堆是對象實例,靜態的對象
- 棧局部變量,返回結果
- 程序可見度
- 堆共享
- 棧線程私有