Java語言具有的特點有:
簡單性、跨平臺性、面向?qū)ο?、安全性、多線程性、分布性、可移植性、解釋型、高性能和動態(tài)性。
(1)簡單性
Java語言類似C++,因此熟悉C++的程序員很容易掌握java,另外它摒棄了C++中易發(fā)生錯誤的地方,
尤其是Java語言不使用指針,并提供了自動的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。
(2)跨平臺性
所謂的跨平臺性就是指軟件可以不受計算機(jī)硬件和操作系統(tǒng)的約束而在任意計算機(jī)環(huán)境下正常運行。
而在Java中它自帶的虛擬機(jī)可以很好的實現(xiàn)跨平臺性,它提供了一個字節(jié)碼到底層硬件平臺及操作系統(tǒng)的屏障,
使得Java語言具備跨平臺性。
(3)面向?qū)ο?/p>
Java是一種面向?qū)ο笳Z言,它可以使得程序的開發(fā)更加簡單易用。比如具有代碼擴(kuò)展,代碼復(fù)用等功能。
(4)安全
Java的安全性可從兩個方面得到保證。一方面,在Java語言里,指針和釋放內(nèi)存等C++功能被刪除,
避免了非法內(nèi)存操作。另一方面,當(dāng)Java用來創(chuàng)建瀏覽器時,語言功能和瀏覽器本身提供的功能結(jié)合起來,
使它更安全。Java語言在機(jī)器上執(zhí)行前,要經(jīng)過很多次的測試。它經(jīng)過代碼校驗,檢查代碼段的格式,
檢測指針操作,對象操作是否過分以及試圖改變一個對象的類型。
(5)多線程
多線程是指允許一個應(yīng)用程序同時存在兩個或兩個以上的線程,用于支持事務(wù)并發(fā)和多任務(wù)處理。
Java除了內(nèi)置的多線程技術(shù)之外,還定義了一些類、方法等來建立和管理用戶定義的多線程。
(6)分布性
Java語言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一個網(wǎng)絡(luò)應(yīng)用編程接口,
它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。
Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)分布式應(yīng)用的重要手段。
(7)可移植的
Java系統(tǒng)本身具有很強(qiáng)的可移植性,Java編譯器是用Java實現(xiàn)的,Java的運行環(huán)境是用ANSI C實現(xiàn)的,
另外Java還嚴(yán)格規(guī)定了各個基本數(shù)據(jù)類型的長度
(8)解釋的
Java解釋器能直接運行目標(biāo)代碼指令,鏈接程序通常比編譯程序所需資源少,
所以程序員可以在創(chuàng)建源程序上花上更多的時間。
(9)高性能
如果解釋器速度不慢,Java可以在運行時直接將目標(biāo)代碼翻譯成機(jī)器指令,
翻譯目標(biāo)代碼的速度與C/C++的性能沒什么區(qū)別。
(10)動態(tài)性
Java語言的設(shè)計目標(biāo)之一是適應(yīng)于動態(tài)變化的環(huán)境,Java程序需要的類能夠動態(tài)地被載入到運行環(huán)境
,也可以通過網(wǎng)絡(luò)來載入所需要的類。這也有利于軟件的升級。
1.2
什么是Java虛擬機(jī):Java虛擬機(jī)(Java Virtual Machine 簡稱JVM)是運行所有Java程序的抽象計算機(jī),
是Java語言的運行環(huán)境,它是Java 最具吸引力的特性之一。
特點:Java語言的一個非常重要的特點就是與平臺的無關(guān)性。而使用Java虛擬機(jī)是實現(xiàn)這一特點的關(guān)鍵。
一般的高級語言如果要在不同的平臺上運行,至少需要編譯成不同的目標(biāo)代碼。而引入Java語言虛擬機(jī)后,
Java語言在不同平臺上運行時不需要重新編譯。Java語言使用模式Java虛擬機(jī)屏蔽了與具體平臺相關(guān)的信息
,使得Java語言編譯程序只需生成在Java虛擬機(jī)上運行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。
Java虛擬機(jī)在執(zhí)行字節(jié)碼時,把字節(jié)碼解釋成具體平臺上的機(jī)器指令執(zhí)行。
1.3
什么是字節(jié)碼: Java 中引入了虛擬機(jī)的概念,即在機(jī)器和編譯程序之間加入了一層抽象的虛擬的機(jī)器。
這臺虛擬的機(jī)器在任何平臺上都提供給編譯程序一個的共同的接口。編譯程序只需要面向虛擬機(jī),
生成虛擬機(jī)能夠理解的代碼,然后由解釋器來將虛擬機(jī)代碼轉(zhuǎn)換為特定系統(tǒng)的機(jī)器碼執(zhí)行。
在 Java 中,這種供虛擬機(jī)理解的代碼叫做字節(jié)碼(即擴(kuò)展名為 .class 的文件),它不面向任何特定的處理器,
只面向虛擬機(jī)。每一種平臺的解釋器是不同的,但是實現(xiàn)的虛擬機(jī)是相同的。
Java 源程序經(jīng)過編譯器編譯后變成字節(jié)碼,字節(jié)碼由虛擬機(jī)解釋執(zhí)行,虛擬機(jī)將每一條要執(zhí)行的字節(jié)碼送給解釋器,
解釋器將其翻譯成特定機(jī)器上的機(jī)器碼,然后在特定的機(jī)器上運行。這也就是解釋了 Java 的編譯與解釋并存的特點。
?