java特性:
1.跨平臺:主要是指位元組碼檔案可以在任何具有Java虛擬機器的計算機或者電子裝置上執行,Java虛擬機器中的Java直譯器負責將位元組碼檔案解釋成為特定的機器碼進行執行。
2.簡單:相比與C、C++不再有#include 和#define 等預處理功能、不再有指標、不再有多重繼承、不再有手動記憶體管理。。。
3.安全:Java取消了強大但又危險的指標、
Java提供了自動記憶體管理機制,由垃圾回收器在後臺自動回收、
Java在位元組碼的傳輸過程中使用了公開金鑰加密機制(PKC),而在執行環境提供了四級安全性保障機制:
位元組碼校驗器 -類裝載器 -執行時記憶體佈局 -檔案訪問限制
位元組碼驗證器(Byte Code Verifier) JVM通過位元組程式碼驗證程式放置程式碼,該程式碼驗證程式檢查格式並檢查非法程式碼。例如,非法程式碼是違反物件訪問許可權或違反指標實現的程式碼。位元組程式碼驗證程式可確保程式碼符合JVM規範,並且不會違反系統完整性。 類載入器(Class Loader) 類載入器載入執行程式所需的所有必要類。它通過將本地檔案系統的名稱空間與通過網路匯入的名稱空間分開來提供安全性。這些檔案可以從硬碟,網路或其他來源載入。 |
4.物件導向
5.健壯:Java的強制型別機制、異常處理、垃圾的自動收集等是Java程式健壯性的重要保證。對指標的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。
6.可移植
7.多執行緒
8.高效能
9.分佈性
Java是一門編譯性語言:
這裡一張圖展示編譯型語言解釋型語言區別:
瞭解位元組碼檔案(bytecode)
• .class檔案、二進位制檔案
• 格式中立、平臺無關的二進位制檔案 採用結構中立的中間檔案格式
• 是編譯的產物,是解釋的原料。
JDK、JRE、JVM的區別聯絡:
• JDK:
• Java DevelopmentKit
• 針對Java開發員的產品( Java應用和applets的軟體開發環境)包含jre,一些工具(javac,java,javadoc( 文件生成器)等),java基礎類庫
• JRE:
• Java RuntimeEnvironment
• 是執行Java程式所必須的環境集合;包括 JVM,Java核心類庫,java命令和其他的一些基礎構件(支援檔案)。但是,它不能用於建立新程式。
• JVM
• Java VirtualMachine:java虛擬機器
• 解釋執行Java位元組碼檔案,跨平臺的核心。JVM是一種用於計算裝置的規範,它是一個虛構出來的計算機,是通過在實際的計算機上模擬模擬各種計算機功能來實現的。
• JVM就是一個虛擬的用於執行bytecodes位元組碼的計算機
• Java虛擬機器是Java最核心技術,也是跨平臺的基礎。
• Java語言使用Java虛擬機器遮蔽了與具體平臺相關的資訊,使得Java語言編譯程式只需生成在Java虛擬機器上執行的目的碼(位元組碼),就可以在多種平臺上不加修改地執行。
• Java虛擬機器在執行位元組碼時,把位元組碼解釋成具體平臺上的機器指令執行。這就是Java的能夠“一次編譯,到處執行”的原因。
聯絡:JDK 包含JRE,JRE包含JVM。