《深入理解Java虛擬機器—JVM高階特性與實踐 周志明 著》之第1章 走近Java
1、Java的技術體系主要由支撐Java程式執行的虛擬機器、提供各開發領域介面支援的Java API、Java程式語言及許多第三方Java框架(如spring、Struts等)構成。
2、Java的優點:
1. 擺脫了硬體平臺的束縛,實現了一次編寫,到處執行(跨平臺);
2. 提供了相對安全的記憶體管理和訪問機制,避免了絕大部分的記憶體洩露和指標越界問題(gc機制);
3. 實現了熱點程式碼檢測和執行時編譯及優化,使得Java應用隨著執行時間的增加效能提高;
4. 有一套完善的應用程式介面和第三方開源庫的支援;
3、Java技術體系包括以下幾個組成部分:
1. Java程式設計語言;
2. 各種硬體平臺上的Java虛擬機器;
3. Class檔案格式;
4. Java API類庫;
4、可以把Java程式設計語言、Java虛擬機器、JavaAPI類庫這三部分統稱為JDK,JDK是用於支援Java程式開發的最小環境。
5、可以把Java API類庫中的JavaSE API子集和Java虛擬機器這兩部分統稱為JRE,JRE是支援Java程式執行的標準環境。
6、Java技術體系可以分為4個平臺:
1. Java Card:支援Java小程式執行在小記憶體裝置上的智慧卡;
2. Java ME:支援Java程式執行在移動終端上的平臺,最終被Android取代;
3. Java SE:支援面向桌面級應用的Java平臺,提供了完整的Java核心API;
4. Java EE:支援使用多層架構的企業級應用的Java平臺;
7、JDK相關版本的新特性:
1. JDK1.5新特性:自動裝箱、自動拆箱、泛型、動態註解、列舉、可變引數、增強遍歷迴圈;
2. JDK1.6新特性:提供動態語言支援、提供編譯API和微型HTTP伺服器API;
3. JDK1.7新特性:提供新的G1收集器、加強對非Java語言的呼叫支援、升級類載入器架構;
4. JDK1.8新特性:Lambda表示式、Jigsaw和JDK1.7中未實現的一部分Coin;
8、Java虛擬機器的發展:
1. Sun Classic VM:世界上第一款商用Java虛擬機器,只能使用純直譯器方式來執行Java程式碼;
2. Sun HotSpot VM:目前使用範圍最廣的Java虛擬機器,熱點程式碼探測技術;
3. BEA JRockit VM:世界上速度最快的Java虛擬機器,全部程式碼靠即使編譯器編譯後執行;
4. Google Dalvik VM:Android平臺的核心組成部分;
9、Java技術的未來:
1. 模組化:解決應用系統與技術平臺越來越複雜、越來越龐大問題的一個重要途徑;
2. 混合語言:Java虛擬機器支援多語言開發;
3. 多核並行:JDK1.5引入java.util.concurrent包實現了一個粗粒度的併發框架;