關于JAVA
Java?編程語言是一種通用的、并發的、面向對象的語言。它的語法類似于C和C++,但它省略了許多使C和C++復雜、混亂和不安全的特性。
Java 是幾乎所有類型的網絡應用程序的基礎,也是開發和提供嵌入式和移動應用程序、游戲、基于 Web 的內容和企業軟件的全球標準。.
從筆記本電腦到數據中心,從游戲控制臺到科學超級計算機,從手機到互聯網,Java 無處不在!
Java的技術體系主要有各種硬件平臺上的JVM虛擬機、提供各開發領域接口支持的Java API、Java編程語言、三方Java框架(Spring等)構成。
Java程序設計語言、Java虛擬機、Java API類庫這三部分統稱為JDK(Java Development Kit),JDK是用于支持Java程序開發的最小環境。
可以把Java API類庫中的Java SE API子集和Java虛擬機這兩部分統稱為JRE(Java Runtime Environment),JRE是支持Java程序運行的標準環境。
下圖展示了Java技術體系所包含的內容,以及JDK和JRE所涵蓋的范圍。
關于JVM
Java虛擬機是Java平臺的基石。負責其硬件和操作系統的獨立性,為Java字節碼的執行提供運行時環境。
JVM虛擬機在Java 虛擬機規范中沒有規定具體實現,而是有各大廠商自己實現。
Implementation details that are not part of the Java Virtual Machine’s specification would unnecessarily constrain the creativity of implementors. For example, the memory layout of run-time data areas, the garbage-collection algorithm used, and any internal optimization of the Java Virtual Machine instructions (for example, translating them into machine code) are left to the discretion of the implementor.
Classic VM 是“世界上第一款商用Java虛擬機”,在JDK 1.2之前是Sun JDK中唯一的虛擬機。
在JDK 1.2時,它與HotSpot VM并存,而在JDK 1.3時,HotSpot VM成為默認虛擬機,直到JDK 1.4的時候,Classic VM才完全退出商用虛擬機的歷史舞臺。
1999年4月27日,HotSpot虛擬機發布,HotSpot最初由一家名為“Longview Technologies”的小公司開發,因為HotSpot的優異表現,這家公司在1997年被Sun公司收購了。后來它成為了JDK 1.3及之后所有版本的Sun JDK的默認虛擬機。
在2008年和2009年,Oracle公司分別收購了BEA公司和Sun公司,這樣Oracle就同時擁有了兩款優秀的Java虛擬機:JRockit VM和HotSpot VM。
關于HostSpot
Java HotSpot虛擬機是Sun用于Java平臺的VM。 它使用許多先進技術為Java應用程序提供最佳性能,包括最先進的內存模型,垃圾收集器和自適應優化器。
在SUN/Orace JDK中包括兩種風格的VM
client mode
server mode
默認以client mode
啟動。
啟動命令加- server
,以server mode
啟動。
查看當前JVM mode:
兩種mode的區別:
client mode
- 短時間內啟動,運行時,占用更少內存
- C1輕量級編譯器,優化較少
- 適合輕量級程序和桌面程序
server mode
- 啟動慢,運行時,占用更大的內存
- C2重量級編譯器,更徹底的優化
- 能提供更好的性能,適合生產部署
HotSpot JVM Architecture
HotSpot JVM 主要包括3個組件:
- Class Loader Subsystem
- Runti