1.間接有效:c++
Java語言是一種至關簡潔的「面向對象」程序設計語言。Java語言省略了c++語言中全部的難以理解、容易混淆的特性,如頭文件、指針、結構、單元、運算符重載、虛擬基礎類等,使得它更加嚴謹、簡潔。程序員
2.可移植性:編程
對於一個程序員而言,寫出來的程序若是不須要通過修改就可以同時在Windows、MacOS、UNIX等平臺上運行,簡直就是好夢成真的好事!而Java語言就讓這個夢想愈來愈接近現實。使用Java語言編寫的程序,只要作較少的修改,甚至有時根本不須要就能夠在不一樣的平臺上運行。安全
3.面向對象:服務器
能夠這麼說,「面向對象」是軟件工程學的一次革命,大大提高了人類的軟件開發能力,是一個偉大的進步,是軟件發展的里程碑。多線程
在過去的30年間,「面向對象」有了長足的發展,充分體現了其自身的價值,到如今已經造成了一個包含「面向對象的系統分析」、「面向對象的系統設計」、「面向對象的程序設計」的完總體系。因此做爲一種現代編程語言,是不能偏離這一方向的,Java語言也不例外編程語言
4.解釋型:分佈式
Java語言是一種解釋型語言,相對於c/c++語言來講,用Java語言寫出來的程序效率低,執行速度慢。但它是經過不一樣平臺上運行Java解釋器,對Java代碼進行解釋,來實現「一次編寫,處處執行」的宏偉目標。爲了達到目標,犧牲效率仍是值得的,何況,如今的計算機技術突飛猛進,運行速度也愈來愈快,用戶是不會感到太慢的。性能
5.適合分佈式計算線程
Java語言是強大的、易於使用的聯網能力,很是適合開發分佈式計算的程序。Java應用程序能夠像訪問本地文件系統那樣經過URL訪問遠程對象。
使用Java語言編寫Scoket通訊程序十分簡單,使用它比使用任何其餘語言都簡單,並且Java語言還十分適用於公共接口(CGI)腳本的開發,另外還可使用Java小應用程序(Applet)、Java服務器頁面(Java Server Page,JSP)、Servlet等手段來構建更加豐富的網頁。
6.擁有較好的性能
正如前面所說,因爲Java是一種解釋型語言,因此它的執行效率就會慢一些,但因爲Java語言採用了兩種手段,使得其性能仍是不錯的。
(1) Java語言源程序編寫完成後,先使用Java僞編譯器進行僞編譯,將其轉換爲中間碼(字節碼)再解釋。
(2) 提供了一種「準實時」(Just-in-Time,JIT)編譯器,當須要更快的速度時,可使用JIT編譯器將字節碼轉換成機器碼,而後將其緩衝下來,這樣速度就會更快。
7.健壯、防患於未然
Java語言在僞編譯時,作了許多早期潛在問題的檢查,而且在運行時又多了一些相應的檢查,能夠說是一種最嚴格的「編譯器」。它的這種「防患於未然」的手段將許多程序中的錯誤扼殺在搖籃中。常常有許多在其它語言中必須經過運行纔回暴露出來的錯誤,在編譯階段就被發現了。另外,在Java語言中,還具有了許多保證程序穩定、健壯的特性,有效地減小了錯誤,這使得Java應用程序更加健壯。
8.具備多線程處理能力
線程,是一種輕量級進程,是現代程序中必不可少的一種特性。多線程處理能力使得程序可以具備更好的交互性、實時性。
Java在多線程處理方面性能超羣,具備讓設計者驚喜的強大工程,並且在Java語言中進行多線程處理很簡單。
9.具備較高的安全性
因爲Java語言設計時的安全方面考慮的很仔細,作了許多探究,使得Java語言成爲目前最安全的一種程序設計語言。
儘管SUN公司曾經許諾過「經過Java能夠輕鬆構建出防病毒、防黑客的系統「,但」世界上沒有絕對的安全系統「這一真理是不會由於某人的許諾而失靈驗的。
就在JDK(Java Development Kit)1.0發佈不久後,美國Princeton(普林斯頓)大學的一組安全專家發現了Java1.0安全特性中的第一列錯誤。今後,Java安全方面的問題開始被關注。不過至今所發現的安全隱患都很微不足道,並且Java開發組還宣稱他們對系統安全方面的Bugs很是重視,會對這些被發現的Bugs當即進行修復。
因爲SUN公司開放了Java編譯器的細節,這有助於經過各界的力量共同發現、防範、制止這些安全隱患。
10.是一種動態語言
Java是一種動態語言,這表如今如下兩個方面:
(1) 在Java語言中,能夠簡單、直觀的查詢運行時的信息。
(2) 能夠將新代碼加入到一個正在運行的程序中去。
11.是一種中性結構
「Java編譯器生成的是一種中性的對象文件格式「。也就是說,Java編譯器經過僞編譯後,將生成一個與任何計算機體系無關的」中性「的字節碼。
這種中性結構其實並非Java獨創的,在Java出現以前,UCSD Pascal系統就已在一種商業產品中作到了這一點,另外在UCSD Pascal 以前也有這種方式的先例,在Niklaus Wirth實現的Pascal語言中就採用了這種下降一些性能來換取更好的可移植性和通用性的方法。
Java的這種字節碼通過了許多精心的設計,使得其可以很好地兼容於當今大多數流行的計算機系統,在任何機器上都易於解釋、易於動態翻譯成爲機器代碼。
清楚了以上主要特色以後,下面再來看一下Java語言的運行機制。首先計算機高級語言類 型主要有編譯型和解釋型兩種,Java是兩種類型的集合。