1. 程式人生 > >java程式設計概述(coreJava)

java程式設計概述(coreJava)

  1.1 Java 程式設計平臺

                  賞心悅目的語法,易於理解的語義

                   龐大的庫功能齊全的執行環境。

                    考慮到相容現有環境,也有一些累贅保留下來

     它是一種功能齊全的出色語言, 是一個高質量的執行環境, 還提供了一個龐大的庫

Java白皮書

簡單性:Java剔除了c加加中的累贅語法(但同時具有大型的功能齊全的庫)

               Java的目標之一是可運行於小型獨立機器的程式。其直譯器以及基本類僅為40kb,

                                                                                                   基本標準類庫加上執行緒支援為175kb

                                                                                                   嵌入式的Java micro edition更小

面向物件:面向物件是一種成熟的技術,Java與c加加旗鼓相當。

                   但Java使用更為簡單的介面概念實現多重繼承

                   執行時,Java也有更為豐富的自省功能

分散式:Java有一個豐富的例程庫,用於處理網路協議,使Java程式非常便捷地訪問網路檔案

健壯性:Java投入大量精力進行早期和後期(執行時)問題檢測,Java編譯器能檢測出許多其他語                                     

             言執行時才能發現的問題

               Java的指標模型消除了重寫記憶體損壞資料的可能性

安全性:Java為適用分散式,網路環境,在安全性上投入大量精力,防範:執行  破壞自己程序空間之外的記憶體 無授權讀寫檔案

               任何Java程式碼都無法離開沙箱

               雖然沒有想象得難麼成功,但確實非常超前(在當時)

               Java程式開發現在更加謹慎,不再信任遠端程式碼(除非數字簽名和使用者同意)

體系結構中立:編譯器生成與特定計算機體系無關的位元組碼檔案,在不同體系的Java系統解釋執行,

                          也可動態地將部分程式碼翻譯成本地系統語言,提高執行效率

                          虛擬機器技術非Java首創

                          Java虛擬機器還可以監測指令序列的行為,增強安全性

可移植性:Java規範不依賴具體實現

                   資料型別大小不變,解決了程式碼移植的主要問題

                   二進位制資料傳輸格式固定,解決了位元組順序問題

                   字串使用標準unicode格式儲存

                   除了使用者介面方面力有未逮,Java庫在其他功能上不必擔心不同系統的底層

                   且Java的api往往比原生api質量更高applicationprogramminginterface

解釋型:虛擬機器技術的特色,程式碼的使用是一種輕量級,增量式過程,使開發快捷可探索。

高效率:解釋後的位元組碼效能已經令人滿意

               但為了更高效率,位元組碼可在執行時動態地翻譯成特定cpu機器碼

               現在即時編譯器已經具有很高效能,卻比傳統編譯器提供更多資訊,實現更多功能

               比如監控常用程式碼,進行速度優化。

               更為複雜的優化,消除函式呼叫,即時內聯

多執行緒:Java是第一個支援多執行緒的主流語言,在當時很超前

                  但開始是因為網路響應慢,多執行緒以保證使用者介面不會凍住

                現在則因為摩爾定律行將完結,我們不追求更快而是更多的處理器

                多執行緒帶來更好的相應互動和實時行為,

                雖然多執行緒程式設計不易,但Java在這方面很重視且出色

動態性:Java更加具有動態性,能適應不斷髮展的環境

               Java可以向庫中新增新方法,例項變數而不影響客戶端

               Java很容易找出執行中的型別資訊

               當需要將程式碼新增到正在執行的程式中時,動態性很重要

               為便於執行程式的演進,Java設計者將此特性引入主流程式設計語言