Java備忘錄《語言特點》

Ansong發表於2018-08-29

1、Java語言經久不衰得益於他優秀的特點

簡單:Java和C++一樣都是物件導向的程式語言,但Java擯棄了C++複雜且容易引發錯誤的地方(指標,記憶體管理,運算子過載,多繼承),所以C++開發者很容易遷入到Java開發, 初學者學習也很容易

物件導向:Java是徹底純粹的面嚮物件語言,在Java中一切都是物件,具有封裝、繼承、多型三個物件導向的基本特質。封裝體現了模組化和資訊隱藏,繼承實現了程式碼複用,使用者可建立自己的類庫,並且只支援單繼承,多型是基於繼承,子類重寫父類方法,實現多種特有操作。

分散式:Java語言就是為分散式系統設計的,JDK包含了支援HTTP和FTP等基於TCP/IP協議的類庫,Java可以憑藉URL開啟並訪問網路上的物件,訪問方式幾乎和本地訪問一樣

結構中立:Java需要在多種不同裝置不同作業系統上執行,Java編譯器生成了與CPU和作業系統無關的位元組碼檔案,只要可以執行Java虛擬機器,位元組碼檔案就可以在此裝置上執行

可移植:Java針對於不同的CPU和作業系統有著多種版本的Java虛擬機器,這樣位元組碼檔案就可以移植到多種不同平臺上

解釋執行:為了跨平臺,Java設計成為解釋執行的,Java原始碼被編譯成為位元組碼檔案,位元組碼檔案包含很多編譯時生成的資訊,在執行時Java直譯器負責將位元組碼檔案解釋成不同的適應特定機型的機器碼來執行

健壯:Java是強語言型別,在編譯時進行程式碼檢查,很多問題在編譯期就被發現,不至於在執行期出現崩潰。Java摒棄了C++的指標,記憶體,等複雜操作,採用自動垃圾回收機制,減少了錯誤的發生,提高健壯性

安全:Java程式執行過程中,類裝載器負責將位元組碼檔案載入到Java虛擬機器中,這個過程由位元組碼效驗器檢查程式碼中是否有非法操作,通過之後Java直譯器才會將位元組碼檔案轉換成機器碼進行執行,這種操作可以防止木馬等病毒。同時Java虛擬機器採用沙箱執行模式,將執行的Java程式限制在一定的記憶體空間,不允許訪問外部記憶體

高效能:Java編譯器編譯時會對位元組碼檔案進行優化,產生高質量的程式碼,同時Java位元組碼格式就是根據機器碼設計的,轉換簡便。Java在解釋執行時採用即時編譯技術,提高執行速度

多執行緒:Java可以併發的處理多個任務,得益於Java支援的多執行緒程式設計。

動態:Java應用在執行中,可以動態的載入各種類庫,即使是更新已有的類庫也不需要重新編譯這一類庫的應用。

2、Java不僅是一種開發語言,更是一個開發平臺,Java根據領域的不同將Java分為三個平臺:Java SE、Java EE、Java ME

Java SE

Java Standard Edition,主要作為桌上型電腦和工作站桌面應用程式的版本,也是其他平臺版本的基礎。

Java SE中包括:JRE(Java SE Runtime Environment,Java SE執行環境)、JDK(Java Development Kit,Java開發工具包)和Java核心類庫。如果只執行Java程式不需要開發Java程式,只需要安裝JRE就可以了,因為JRE中包含了java程式執行所需要的Java虛擬機器(JVM, Java Virtual Machine)。JDK中包含了JRE和一些開發工具:編譯器,文件生成器,檔案打包等工具。

Java SE中還提供了Java應用程式開發需要的基本核心類庫:字串、集合、輸入輸出、網路通訊和圖形使用者介面,平時學習Java就是在學習Java語法和Java類庫的使用。

Java EE

Java Enterprise Edition,為簡化企業級系統的開發、部署、管理。以Java SE為基礎,並提供了一套服務、API介面和協議,能夠開發企業級分散式系統、Web應用程式和業務元件等。包含:JSP、Servlet、EJB、JNI、Java Mail等。

Java ME

Java Micro Edition,主要面向消費電子產品,為消費電子產品提供一個Java執行平臺,使Java程式能夠在手機,機頂盒,Pad等產品上執行。Java ME早先在塞班系統上用很多應用,現在iOS和Android都已經沒有他的用武之地了。

3、Java虛擬機器 Java應用程式能夠做到一次編譯到處執行的跨平臺特性,主要是通過Java虛擬機器實現的,Java虛擬機器就像是Java程式和各種作業系統的一個橋樑。不同軟硬體平臺的Java虛擬機器是不同的,使用或者開發時需要下載不同的JRE和JDL版本。

Java備忘錄《語言特點》

Java虛擬機器中包含了Java直譯器,Java程式執行過程中先由編譯器將Java原始碼(.java)編譯成位元組碼檔案(.class),然後再由Java虛擬機器中的直譯器將位元組碼解釋成為機器碼去執行。

Java備忘錄《語言特點》

相關文章