jvm筆記一(java虛擬機和java內存區域)

(來源:極客學院JVM教程)

內存區域基礎概念:


 1.java虛擬機和java內存區域


 2.java虛擬機棧和本地方法棧 


 3.java堆


 4.方法區和運行時常量池


 5.直接內存





1.java虛擬機和java內存區域

Menu

1>什麼是虛擬機,什麼是java虛擬機

2>概念模型與具體實現

3>java虛擬機運行時數據區

4>程序計數區域

    1> 什麼是虛擬機,什麼是java虛擬機


  定義:模擬某種計算機體系結構,執行特定指令集的軟件

  分類:系統虛擬機進程虛擬機

(並不會完整的模擬一個操作系統的運行環境)

(僅提供特定指令集的運行環境)


Virtual BoxJVM

VMwareAdobe Flash Player

FC模擬器

(JVM可劃分出高級語言虛擬機)

JVM  .NET CLR  P-Code

(高級語言虛擬機把特定指令集的範圍進一步限定爲高級語言) 



java語言虛擬機:可以執行java語言的高級語言虛擬機,但是java語言虛擬機並不一定就被稱爲JVM(java虛擬機)


java虛擬機並不一定執行java語言

 

Oracle HotSpot 虛擬機:目前,應用最廣範的虛擬機,命名來自於“熱點代碼探測”技術


2 >概念模型與具體實現

公有設計,私有實現

同樣的java代碼,在不同的java虛擬機中都可以實現,唯一區別就是實現速度的問題



3>java虛擬機的運行時內存區域

是所有java虛擬機共同的內存區域概念模型

運行時數據區的劃分:

.程序計數器

`.java堆

.java虛擬機棧

.本地方法棧

.方法區


         4> 程序計數器(Program Counter Register)

. 一塊較小的內存空間,它的作用可以看做是當前線程所執行的字節碼的行  號指示器

. 可以理解爲Eclipse內的行號指示器,不過其指示的是字節碼文件的行號

. 如果線程正在執行的是一個java方法,這個計數器記錄的是正在執行的虛  擬機字節碼指令的地址

. 如果正在執行的是一個本地Native方法,則這個計數器值爲空


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