JVM_01 总体概述
生活随笔
收集整理的這篇文章主要介紹了
JVM_01 总体概述
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
寫在最前面:
①. JVM 是 java虛擬機,是用來執(zhí)行java字節(jié)碼(二進制的形式)的虛擬計算機
②. jvm是運行在操作系統(tǒng)之上的,與硬件沒有任何關(guān)系
①. 跨平臺:由Java編寫的程序可以在不同的操作系統(tǒng)上運行:一次編寫,多處運行
②. 原理:編譯之后的字節(jié)碼文件和平臺無關(guān),需要在不同的操作系統(tǒng)上安裝一個對應版本的虛擬機(JVM)
①. 類加載子系統(tǒng)
②. 運行時數(shù)據(jù)區(qū) [ 我們核心關(guān)注這里 的棧、堆、方法區(qū) ]
③. 執(zhí)行引擎(一般都是JIT編譯器和解釋器共存) JIT編譯器(主要影響性能):編譯執(zhí)行;
一般熱點數(shù)據(jù)會進行二次編譯,將字節(jié)碼指令變成機器指令。將機器指令放在方法區(qū)緩存 解釋器(負責相應時間):逐行解釋字節(jié)碼
- ①. Sun HotSpot 提起HotSpot VM,相信所有Java程序員都知道,它是Sun
JDK和OpenJDK中所帶的虛擬機,也是目前使用范圍最廣的Java虛擬機
在2006年的JavaOne大會上,Sun公司宣布最終會把Java開源,并在隨后的一年,陸續(xù)將JDK的各個部分(其中當然也包括了HotSpot
VM)在GPL協(xié)議下公開了源碼, 并在此基礎上建立了OpenJDK。這樣,HotSpot VM便成為了Sun
JDK和OpenJDK兩個實現(xiàn)極度接近的JDK項目的共同虛擬機。
在2008年和2009年,Oracle公司分別收購了BEA公司和Sun公司,這樣Oracle就同時擁有了兩款優(yōu)秀的Java虛擬機:JRockit
VM和HotSpot VM。 Oracle公司宣布在不久的將來(大約應在發(fā)布JDK 8的時候)會完成這兩款虛擬機的整合工作,使之優(yōu)勢互補。
整合的方式大致上是在HotSpot的基礎上,移植JRockit的優(yōu)秀特性,譬如使用JRockit的垃圾回收器與MissionControl服務,
使用HotSpot的JIT編譯器與混合的運行時系統(tǒng) - ②. BEA JRocket
專注于服務端應用(JRockit內(nèi)部不包含解析器實現(xiàn),全部代碼都靠即時編譯器編譯后執(zhí)行) Jrockit JVM 是世界上最快的jvm3.
2008年被oracle收購 - ③. iBM J9 市場定位與hotspot接近,服務器端,桌面應用,嵌入式等
目前,是影響力的三大商業(yè)虛擬機之一
總結(jié)
以上是生活随笔為你收集整理的JVM_01 总体概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。