Java是由Sun MicroSystems公司於1995年5月推出的Java面向對象程序設計語言和Java平臺的總稱。由James Gosling和同事們共同研發,並在1995年正式推出。html
2005年6月,JavaOne會議(自Java推出以來,SUN公司每一年都組織諸多Java開發者大會,尤爲是自1996年以來每一年在美國召開的JavaOne會議)召開,SUN公司公開JavaSE 6。此時Java的各類版本已經改名以取消其中的數字2:J2SE 改名爲JavaSE,J2EE改名爲JavaEE,J2ME改名爲JavaME。java
簡單程序員
Java語言的語法與C語言和C++語言很接近,使大多數程序員容易學習和使用。另外一方面,Java丟棄了C++中不多使用的、很難理解的、使人迷惑的特性,如操做符重載、多繼承、自動的強制類型轉換。特別地,Java語言不使用指針,而是用引用。Java提供了自動的垃圾回收,是程序員沒必要爲內存管理擔心。編程
Java語言提供類、接口、繼承等原語,爲了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,並支持類與接口之間的多實現機制(關鍵字爲implements)。Java語言全面支持動態綁定(動態綁定就是指函數調用要到運行的時候才決定具體調用那個函數,靜態綁定是指函數調用在編譯時就肯定要調用那個函數了),而C++語言只對虛函數使用動態綁定。總而言之,Java語言是一種純的面向對象程序設計語言。安全
Java語言支持Internet應用的開發,在基本的Java應用編程接口中有一個網絡應用編程接口(java net),它提供了用於網絡應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程方法激活)機制也是開發分佈式應用的重要手段。網絡
Java的強類型機制、異常處理、垃圾的自動收集等,是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。多線程
Java一般被用在網絡環境中,爲此,Java提供了一個安全機制以防惡意代碼的攻擊。除了Java語言具備的許多安全特性之外,Java對經過網絡下載的類具備一個安全防範機制(類ClassLoader),如分配不一樣的名字空間以防替代本地的同名類、字節代碼檢查,並提供安全管理機制(類SecurityManager)讓Java應用設置安全哨兵。oracle
Java程序(後綴爲.java的文件)在Java平臺上被編譯成體系結構中立的字節碼格式(後綴爲.class的文件),而後能夠在實現這個Java平臺的任何系統中運行。這種途徑適合於異構的網絡環境和軟件的分發。eclipse
Java的可移植性來源於體系結構中立性,另外,Java還嚴格規定了各個基本數據類型的長度。Java系統自己也具備很強的可移植性,Java編譯器是用Java實現的,Java的運行環境是用ANSI C(由美國國家標準協會(ANSI,American National Standards Institute)及國際標準化組織(ISO)推出的關於C語言的標準)實現的。編輯器
Java程序在Java平臺上被編譯爲字節碼格式,而後能夠在實現這個Java平臺的任何系統中運行。在運行時,Java平臺中的Java解釋器對這些字節碼進行解釋執行,執行過程當中須要的類在聯接階段被載入到運行環境中。
與那些解釋型的高級腳本語言相比,Java的確是高性能的。事實上,Java的運行速度隨着JIT(Just-In-Time)編譯器技術的發展愈來愈接近於C++。
在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來建立。一般有兩種方法來建立線程:其一,使用型構爲Thread(Runnable)的構造函數將一個實現了Runnable接口的對象包裝成一個線程;其二,從Thread類派生出子類並重寫run()方法,使用該子類建立的對象即爲線程。值得注意的是Thread類已經實現了Runnable接口,所以,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。Java語言支持多個線程的同時執行,並提供多線程之間的同步機制(關鍵字爲synchronized)。
Java語言的設計目標之一是適應於動態變化的環境。Java程序須要的類可以動態的被載入到運行環境,也能夠經過網絡來載入所須要的類。這樣有利於軟件的升級。另外,Java中的類有一個運行時刻的表示,能夠進行運行時刻的類型檢查。
Java語言儘可能保證系統內存在1G以上,其餘工具以下所示: