天天看點

《Java和Android開發實戰詳解》——1.2節Java基礎知識

本節書摘來自異步社群《java和android開發實戰詳解》一書中的第1章,第1.2節java基礎知識,作者 陳會安,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

1.2 java基礎知識

java和android開發實戰詳解

java語言類似于c++是一種編譯型語言,不過兩者并不完全相同,嚴格說來,java是結合編譯和解釋優點的一種程式設計語言。

1.2.1 java平台

“平台”(platform)是一種結合硬體和軟體的執行環境。java既是一種進階的面向對象的程式設計語言,也是一個平台。java平台是一種純軟體平台,它可以在各種基于硬體的平台上運作,與硬體無關,主要是由jvm和java api兩個部分組成。

1.jvm虛拟機

jvm(java virtual machine,java虛拟機)是由軟體虛拟出來的一台計算機,java源代碼并不是使用java編譯程式(java compiler)編譯成其安裝實體計算機可執行的機器語言,而是jvm虛拟機的機器語言,稱為“位元組碼”(bytecode)。

位元組碼是一種可以在jvm解釋或編譯執行的程式,換句話說,計算機作業系統需要安裝jvm,才能夠使用java解釋程式(java interpreter)來解釋和執行位元組碼,如圖1-3所示。

《Java和Android開發實戰詳解》——1.2節Java基礎知識

圖1-3中的java源代碼(擴充名為.java)在編譯成位元組碼(擴充名為.class)後,即可在windows、unix,或machintosh的mac os作業系統上執行,隻需安裝jvm,同一個位元組碼檔案就可以跨平台運作在不同作業系統上,使用java解釋程式來正确執行java應用程式。

2.java api

java api(java application programming interface)是軟體元件的一個集合,也就是c/c++語言所謂的函數庫,它提供集合對象、gui元件、檔案處理、資料庫通路和網絡等相關的類和接口,稱為“包”(package)。

1.2.2 java語言的版本

java是一種進階和面向對象程式設計語言,其文法和c/c++語言十分相似,支援windows、solaris、linux和mac os x作業系統,分成企業版(enterprise edition,ee)和标準版(standard edition,se)。

1.标準版的版本演進

本書介紹應用程式開發使用的是java se标準版,其版本演進如表1-3所示。

《Java和Android開發實戰詳解》——1.2節Java基礎知識

其中1.0、1.1、5.0和6簡稱jdk,1.2、1.3和1.4版簡稱sdk。在1.2版時,因為與前版有極大改進,增加全新swing圖形使用者接口,是以稱為java 2平台。

從1.3版後,sun将平台與平台開發工具的名稱分開,平台分為标準版(standard edition,se)和企業版(enterprise edition,ee)。企業版新增額外函數庫,主要用來開發企業級的伺服器端java應用程式。

到了5.0版,java版本号也分為兩種:産品版本号是5.0版(product version),jdk使用1.5.0版,為開發版本号(developer version)。從se 6版開始,官方名稱由j2se改為java se,不再稱為java 2,java se 7是平台名稱,同時使用開發版本号1.7.0和産品版本号7代表新版的java平台。

2.java se 7

java se 7是jave語言的最新版本,也是甲骨文(oracle)并購sun公司後,首次釋出的java平台版本。java se 7版包含很多全新功能、增強功能與錯誤修正,可以全方面提升開發與執行java程式的效率。

java se 7除了修正不少漏洞及提升整體性能外,更提供對ruby、python和javascript語言的支援,并且針對多核心環境新增全新api,并大幅提升jvm性能,使用全新檔案系統api,支援異步i/o。其主要增強功能簡要說明如下。

改善整體性能、穩定性及安全性。

增強java插件的功能,友善intenet應用程式的開發與部署。

強化java文法,讓開發人員更輕松地編寫與優化java程式代碼。

增強java虛拟機的功能,使其可以支援非java語言。

1.2.3 java程式設計語言的特點

java語言是一款簡單、功能強大和高性能的面向對象程式設計語言,不隻這樣,java語言還擁有一些傳統程式設計語言所沒有的特點。

1.分布式

java語言最初的規劃是一種網絡程式設計語言,可以支援各種網絡協定,能夠建立分布式(distributed)主從架構的應用程式,輕松通路網絡上其他主機的資源。

2.多線程

java語言支援多線程(multi-threading),在同一程式能夠建立多個執行小程式,稱為“輕量級程序”(light weight process),以便執行不同的工作,并且支援同步功能,能夠避免“死鎖”(deadlock)情況的發生。

3.垃圾回收

垃圾(garbage collection)是指處理程式不再使用的記憶體空間。在c/c++語言中需要程式員自行處理記憶體的配置與釋放,當不再使用時,程式需要提供程式代碼來釋放内将其存歸還給作業系統,這樣作業系統才能夠再次配置設定記憶體給其他應用程式。

java語言則擁有自動垃圾回收能力,程式設計者不用擔心記憶體配置不足的問題,因為在執行java程式時,會自動将不再使用的記憶體歸還給作業系統。

4.異常處理

計算機程式不可能沒有“小臭蟲”(bugs)。在程式運作時極有可能産生一些小錯誤,有些可能隻會産生錯誤結果,但是有一些小錯誤可能導緻嚴重的系統當機問題,傳統程式設計語言并沒有完善的異常處理(exception handling)機制,是以常常會出現一些不明的系統錯誤。

異常處理的目的是為了讓程式能夠更加“強壯”(robust),就算程式遇到不尋常情況,也不會造成程式“崩潰”(crashing),甚或導緻整個系統的當機。