- Java編程技術與項目實戰(第2版)
- 王誠 梅霆 李琴 王峰 朱書眉
- 3535字
- 2020-06-15 16:35:13
1.1 Java語言概述
1.1.1 Java語言發展
1991年4月,Sun公司的James Gosling領導的綠色計劃(Green Project)開始著力發展一種分布式系統結構,使其能夠在各種消費性電子產品上運行。他們研發了一種新的語言,該語言以C和C++為基礎,James根據他在Sun公司辦公室外的一棵橡樹,而稱其為Oak語言。后來發現已有一種稱為Oak的計算機語言。當一些Sun公司的員工到當地一家咖啡店時,有人提議將該語言命名為Java,從而使Java這個名字一直延續至今。
不過,在當時市場不成熟的情況下,他們的項目沒有獲得成功。市場對智能型電子裝置需求的上升率并不像Sun司所期盼的那樣快,更糟的是Sun公司參加競爭的一個重要的銷售合同被另一公司得去了。此時,Green項目幾乎處于被取消的境地。但很幸運的是,1993年萬維網(WWW)瘋狂地流行起來,由于Internet的迅猛發展和WWW的快速增長,第一個全球信息網絡瀏覽器Mosaic誕生了。此時,工業界非常急迫地需求一種適合在網絡異構環境下使用的語言。Games Gosling決定改變綠色計劃的發展方向,對Oak進行了小規模的改造。就這樣給該項目重新注入了生機,1995年,Oak語言更名為Java語言。Java的誕生標志著互聯網時代的開始。
Sun公司于1995年5月在一個重要會議上正式發布了Java。這樣的事通常不會引起廣泛的注意,但是由于萬維網的商業利益,Java立即引起了商業界的極大興趣。目前,Java被廣泛應用于創建具有動態的、交互內容的Web網頁,開發大規模企業應用程序,增強萬維網服務的功能,向消費者的設備提供應用程序。
1998年是Java迅猛發展的一年。在1998年12月4日,Sun發布了Java歷史上最重要的一個版本:JDK 1.2。這個版本的發布標志著Java已經進入Java 2時代。這個時期也是Java飛速發展的時期。在這一年中Sun發布了JSP/Servlet、EJB規范,以及將Java分成了J2EE、J2SE和J2ME。
2000年5月8日,Sun對JDK 1.2進行了重大升級,推出了JDK 1.3。2002年2月13日,Sun公司發布了JDK歷史上最為成熟的JDK 1.4版本。2004年10月,Sun發布了期待已久的JDK 1.5版本,同時將JDK 1.5改名為J2SE 5.0。最新版本JDK 8.0加入了很多新特性,是一款革命性開發平臺,全面升級了現有的Java流程模式。
Java問世以來,其技術發展非常快,在計算機、移動電話、家用電器等領域都得到了廣泛的應用。
1.1.2 Java語言的特點
Java語言的前身是在C++的基礎上開發的,它繼承了C、C++語言的優點,增加了一些實用的功能,使Java語言更加精煉。Java摒棄了C、C++語言的缺點,去掉了C、C++語言中的指針運算、結構體定義、手工釋放內存等容易引起錯誤的功能和特征,增強了安全性,也使其更容易被接受和學習。Java是獨立于平臺,面向Internet的分布式編程語言。
Java是一種簡單的、面向對象的、分布式的、解釋執行的、健壯的、安全的、結構中立的、可移植的、高效率的、多線程的和動態的語言。
1. 簡單
Java是一種純面向對象的語言,它通過提供最基本的方法來完成指定的任務,只需理解一些基本的概念,就可以用它編寫出適合于各種情況的應用程序。Java略去了指針、運算符重載、多重繼承等內容,并且通過實現無用信息自動回收,大大簡化了程序設計者的內存管理工作。同時,Java很小,基本的解釋器及類支持大約僅為40KB。
2. 面向對象
Java是一種純面向對象的語言,Java的核心是面向對象編程。事實上,所有的Java程序都是面向對象的,這一點與C++語言不同,因為在那里可以選擇是否面向對象編程。Java程序面向對象的設計思路不同于C語言基于過程的程序設計思路。面向對象程序設計,具備更好地模擬現實世界環境的能力和可重用性。它將待解決的現實問題轉換成一組分離的程序對象,這些對象彼此之間可以進行交互。一個對象包含了對應實體應有的信息,以及訪問和改變這些信息的方法,重點放在數據(即對象)和對象的接口上。通過這種設計方式,所設計出來的程序更易于改進、擴展、維護和重用。Java語言只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口間的實現機制。
3. 分布式
Java是一種分布式的語言。傳統的基于C/S(客戶端/服務器)架構的程序,客戶端向服務器提出服務請求,服務器將程序執行結果返回,所以,服務器負荷較重。Java采用Java虛擬機架構,可將許多工作直接交由終端處理,因此,數據可以被分布式處理。此外,Java類庫的運用,大大減輕了網絡傳輸的負荷。Java類庫包含了支持HTTP、FTP等基于TCP/IP的子庫。Java應用程序可憑借URL打開并訪問網絡上的對象,其訪問方式與訪問本地文件系統幾乎完全相同。Java的網絡功能強大且易于使用,特別是遠程方法調用使得分布式對象之間可以互相通信。
4. 高效解釋執行
Java是高效解釋執行的語言。高級語言程序必須轉換為機器語言程序才能在計算機上執行。Java程序在編譯時并不直接編譯成特定的機器語言程序,而是編譯成與系統無關的“字節碼(bytecode)”,由Java虛擬機(Java Virtual Machine,JVM)來執行。JVM使得Java程序可以“一次編譯,隨處運行”。任何系統只有安裝了Java虛擬機后,才可以執行Java程序。JVM能直接在任何機器上執行,為字節碼提供運行環境。
5. 健壯性
Java是健壯的語言。Java不需要指針就可以構造其他語言中需要指針構造的數據結構,即不會存取“壞的”指針而造成內存分配、內存泄露等錯誤。在傳統的編程環境下,內存管理是一項困難、乏味的工作。例如,在C或C++語言中,必須手工分配、釋放所有的動態內存。如果忘記釋放原來分配的內存,或是釋放了其他程序正在使用的內存時,系統就會出錯。同時,在傳統的編程環境下,對異常情況必須用既繁瑣又難理解的一大堆指令來進行處理。Java通過自行管理內存分配和釋放的方法,從根本上消除了有關內存的問題。Java提供垃圾收集器,可自動收集閑置對象占用的內存。Java提供面向對象的異常處理機制來解決異常處理的問題。
6. 安全
Java是安全的網絡編程語言,使用Java可以構建防病毒、防篡改的系統。Java提供了一系列的安全機制以防惡意代碼攻擊,確保系統安全,如禁止運行時堆棧溢出、禁止在自己處理空間外破壞內存。Java的安全機制分為多級,包括Java語言本身的安全性設計,以及嚴格的編譯檢查、運行檢查和網絡接口級的安全檢查。
7. 結構中立
Java是結構中立的語言。Java的設計目標是要支持網絡應用。Java編譯器會產生一種具備結構中立性的對象文件格式,即Java字節碼文件。精心設計的Java字節碼不僅很容易在任何機器上解釋執行,還可以快速翻譯成本機的代碼。
8. 可移植性
結構中立是確保程序可移植的必要條件,此外,還需要很多其他條件的配合。Java在可移植性方面做了許多工作。Java通過定義獨立于平臺的基本數據類型及其運算,使數據得以在任何硬件平臺上保持一致。例如,Java中的int類型永遠是32位的整數,這樣就消除了代碼移植時的主要問題。
9. 高效率
Java是高效率的語言。每一次的版本更新,Java在性能上均做出了改進。在歷經數個版本變更后,Java已經擁有與C/C++同樣甚至更好的運行性能。當JVM解釋執行Java程序時,Java實時編譯器(Just-In-Time,JIT)會將字節碼譯成目標平臺對應的機器語言的指令代碼,并將結果進行緩存,因為JVM能夠直接使用JIT編譯技術將經過精心設計的字節碼轉換成高性能的本機代碼,所示Java可以在非常低檔的CPU上順暢運行。
10. 多線程
Java是支持多線程的語言。多線程可以帶來更好的交換響應和實時行為。多線程是一種應用程序設計方法。線程是從大進程里分出來的、小的、獨立的進程,使得在一個程序里可同時執行多項小任務。多線程帶來的好處是具有更好的交互性能和實時控制性能,但采用傳統的程序設計語言(如C/C++)實現多線程非常困難。Java實現了多線程技術,提供了一些簡便地實現多線程的方法,并擁有一套高復雜性的同步機制。
11. 動態
Java語言具有動態特性,能夠適應不斷發展的環境。Java的動態特性是其面向對象設計方法的擴展,庫中可以自由地添加新方法和實例變量,允許程序動態地裝入運行過程中所需的類,Java將符號引用信息在字節碼中保存后傳遞給解釋器,再由解釋器在完成動態連接類后,將符號引用信息轉換為數據偏移量。存儲器生成的對象不在編譯過程中確定,而是延遲到運行時由解釋器確定。
1.1.3 Java平臺
Java推出了3個領域的應用平臺:標準版Java 2 Platform Standard Edition(Java SE)、企業版Java 2 Platform Enterprise Edition(Java EE)和微型版Java 2 Platform Micro Edition(Java ME)。
Java SE是各應用平臺的基礎。Java SE可以分為4個主要部分:JVM、JRE、JDK和Java語言。為了能運行Java程序,平臺上必須安裝有Java虛擬機(Java Virtual Machine,JVM)。JVM包含在Java運行環境(Java SE Runtime Environment,JRE)和Java開發包(Java Development Kit,JDK)等java軟件中。JDK包括了JRE及開發過程中所需要的一些工具程序,如Javac、Java、Appletviewer等。安裝JRE軟件則可以運行Java程序;安裝JDK軟件則不但能運行Java程序,還可以編譯開發Java程序。Java語言只是Java SE的一部分。此外,Java提供了龐大且功能強大的API(Application Programming Interface)類庫,可以使用這些API作為基礎進行程序開發,而無需重復開發功能相同的組件。
Java EE以Java SE為基礎,定義了一系列的服務、API、協議等,適用于開發分布式、多層式(Multi-tiered)、以組件為基礎、以Web為基礎的應用程序。整個Java EE的體系是相當龐大的,比較常用的技術有JSP、Servlet、Enterprise JavaBeans(EJB)、Java Remote Method Invocation(RMI)等。
Java ME是Java平臺版本中最小的一個,是作為小型數字設備上開發及部署應用程序的平臺,如消費型電子產品、嵌入式系統等。
- Dynamics 365 for Finance and Operations Development Cookbook(Fourth Edition)
- Vue.js設計與實現
- JavaScript+DHTML語法與范例詳解詞典
- Manga Studio Ex 5 Cookbook
- Scratch 3游戲與人工智能編程完全自學教程
- Java深入解析:透析Java本質的36個話題
- 鋒利的SQL(第2版)
- Visual C++數字圖像處理技術詳解
- Java程序設計入門
- 西門子S7-200 SMART PLC編程從入門到實踐
- C#程序設計教程(第3版)
- Julia 1.0 Programming Complete Reference Guide
- QlikView Unlocked
- C語言程序設計
- scikit-learn Cookbook(Second Edition)