jvm是執行在作業系統之上的,它與硬體沒有直接的互動
jvm是跨語言的平台,jvm與j**a無關,任何語言只要其編譯結果滿足幷包含j**a虛擬機器的內部指令集、符號表以及其他的輔助資訊,符合class檔案格式,它就是乙個有效的位元組碼檔案,就能夠被虛擬機器所識別並裝載執行。
虛擬機器j**a虛擬機器
特點:一次編譯,到處執行 自動記憶體管理 自動垃圾**功能
執行引擎包含三部分:直譯器,及時編譯器jit,垃圾**器gc。
j**a編譯器輸入的指令流基本上是一種基於棧的指令集架構,另外一種指令集架構則是基於暫存器的指令集架構。具體來說:這兩種架構之間的區別:
基於棧式架構的特點
基於暫存器架構的特點
虛擬機器的啟動
j**a虛擬機器的啟動是通過引導類載入器(bootstrap class loader)建立乙個初始類(initial class)來完成的,這個類是由虛擬機器的具體實現指定的。
虛擬機器的執行
虛擬機器的退出
sun classic vm
exact vm
hotspot vm
jrockit
ibm的j9
……還有很多啦~
具體jvm的記憶體結構,其實取決於其實現,不同廠商的jvm,或者同一廠商發布的不同版本,都有可能存在一定差異。
JVM基礎入門
jvm j a virtual machine 為j a虛擬機器,是執行在作業系統之上,為j a程式提供支援。負責載入class檔案,class檔案在檔案開頭有特定的檔案標示,將class檔案位元組碼內容載入到記憶體中,並將這些內容轉換成方法區中執行時資料結構並且classloader只負責clas...
JVM基礎學習(一) JVM記憶體模型
在j a高階知識的學習中,jvm都是避不過去的一關,我個人對於jvm的理解其實就是相當於在作業系統的外層再加了一層中間層,從來遮蔽了具體硬體之間的不同實現,使得j a實現了最重要的特性 一次編譯,處處執行。本分類中的內容都是基於 深入理解j a虛擬機器 中的內容以及網路上面部落格整理,外加自己的理解...
jvm基礎引數
初始化堆記憶體大小,相當於 xx initheapsize 預設為系統記憶體的1 64 最大堆記憶體,相當於 xx maxheapsize,預設為系統的1 4 棧空間 xx threadstacksize,windows取決於記憶體大小,而其他系統預設為1024k 新生代大小 元空間,使用直接記憶體...