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