標籤:
關於java的設計目標
java不僅是一門語言,java是一個完整的平台,有一個龐大的庫,其中包含了很多可重用的代碼和一個提供諸如安全性,跨作業系統的可移植性以及自動垃圾收集等服務的執行環境。(庫+平台)
java白皮書中提到了11個關鍵目標,下面是對這11個關鍵術語的理解。
簡單性:java的目標是構建一個無需經過深奧的專業訓練就可以編程的系統,並且要符合原有的規範。因此,java很大程度上靠近c++,但是java中刪除了c++中很多很少使用的特性,去除c++的複雜性。但是相對於可視化的編程環境,例如VB,java仍然比較複雜。另一方面,簡單的另一個要求是小,但是現在java的類已經很多了。
物件導向:物件導向方面,java的物件導向特性與c++旗鼓相當,java與c++的不同之處在於多繼承,在java中,取而代之的介面概念,以及java的元類概念。
網路技能:java的網路編程非常方便,同時遠程方法調用機制使得分布式對象之間可以進行通訊。
健壯性:java的健壯性在於java永遠不會存取一個壞的指標,從而造成記憶體配置的錯誤,也不必防範記憶體泄露。同時,java可以滿足指標才能滿足的靈活性要求。
安全性:一個永恒的話題,永無止境的話題。
體繫結構中立:java的運行環境是jre,java代碼經過編譯器編譯後產生與體繫結構無關的位元組碼,這樣只要有位元組碼的解譯器,就都可以運行。相對於c++編譯後產生的機器碼,需要解釋的位元組碼運行速度慢一些,但是jvm提供了一些機制來加快位元組碼的運行,現在看來,java的運行速度是可以滿足要求的。
可移植性:java運行基於jvm,可移植性是必然的。
解釋型:解釋型語言的執行速度慢,即使使用了所謂的增量式的連結。現在,使用即時編譯器將位元組碼翻譯成機器碼,熱點代碼編譯為機器碼,運行速度也很快。
高效能:高效能來源於即時編譯,並且相對於傳統的編譯器更有優勢,因為可以擷取更多的資訊。
多線程:java中的多線程使用相當方便。Java底層還是使用作業系統或者線程庫來實現。
動態性:java相對於c或者c++而言動態性更強,可以獲得運行時對象的資訊,非常靈活。
綜上所述,可知java確實是一個十分易用的程式設計平台,而不僅僅是一門語言。
關於java的設計目標