發展歷程
20世紀90年代,硬體領域出現了單片式計算機系統,這種價格低廉的系統一出現就立即引起了自動控制領域人員的注意,因為使用它可以大幅度提升消費類電子產品 (如電視機頂盒、麵包烤箱、行動電話等)的智慧型化程度。Sun公司為了搶占市場先機,在1991年成立了一個稱為Green的項目小組,派屈克、詹姆斯·高斯林、麥克·舍林丹和其他幾個工程師一起組成的工作小組在加利福尼亞州門洛帕克市沙丘路的一個小工作室裡面研究開發新技術,專攻計算機在家電產品上的嵌入式套用。
由於C++所具有的優勢,該項目組的研究人員首先考慮採用C++來編寫程式。但對於硬體資源極其匱乏的單片式系統來說,C++程式過於複雜和龐大。另外由於消費電子產品所採用的嵌入式處理器晶片的種類繁雜,如何讓編寫的程式跨平台運行也是個難題。為了解決困難,他們首先著眼於語言的開發,假設了一種結構簡單、符合嵌入式套用需要的硬體平台體系結構並為其制定了相應的規範,其中就定義了這種硬體平台的二進制機器碼指令系統 (即後來成為“ 位元組碼 ”的指令系統),以待語言開發成功後,能有半導體晶片生產商開發和生產這種硬體平台。對於新語言的設計,Sun公司研發人員並沒有開發一種全新的語言,而是根據嵌入式軟體的要求,對C++進行了改造,去除了留在C++的一些不太實用及影響安全的成分,並結合嵌入式系統的實時性要求,開發了一種稱為Oak的面向對象語言。
由於在開發Oak語言時,尚且不存在運行位元組碼的硬體平台,所以為了在開發時可以對這種語言進行實驗研究,他們就在已有的硬體和軟體平台基礎上,按照自己所指定的規範,用軟體建設了一個運行平台,整個系統除了比C++更加簡單之外,沒有什麼大的區別。1992年的夏天,當Oak語言開發成功後,研究者們向硬體生產商進行演示了Green作業系統、Oak的程式設計語言、類庫和其硬體,以說服他們使用Oak語言生產硬體晶片,但是,硬體生產商並未對此產生極大的熱情。因為他們認為,在所有人對Oak語言還一無所知的情況下,就生產硬體產品的風險實在太大了,所以Oak語言也就因為缺乏硬體的支持而無法進入市場,從而被擱置了下來。
1994年6、7月間,在經歷了一場歷時三天的討論之後,團隊決定再一次改變了努力的目標,這次他們決定將該技術套用於全球資訊網。他們認為隨著Mosaic瀏覽器的到來,網際網路正在向同樣的高度互動的遠景演變,而這一遠景正是他們在有線電視網中看到的。作為原型,派屈克·諾頓寫了一個小型全球資訊網瀏覽器WebRunner。
1995年,網際網路的蓬勃發展給了Oak機會。業界為了使死板、單調的靜態網頁能夠“靈活”起來,急需一種軟體技術來開發一種程式,這種程式可以通過網路傳播並且能夠跨平台運行。於是,世界各大IT企業為此紛紛投入了大量的人力、物力和財力。這個時候,Sun公司想起了那個被擱置起來很久的Oak,並且重新審視了那個用軟體編寫的試驗平台,由於它是按照嵌入式系統硬體平台體系結構進行編寫的,所以非常小,特別適用於網路上的傳輸系統,而Oak也是一種精簡的語言,程式非常小,適合在網路上傳輸。Sun公司首先推出了可以嵌入網頁並且可以隨同網頁在網路上傳輸的Applet (Applet是一種將小程式嵌入到網頁中進行執行的技術),並將Oak更名為Java (在申請註冊商標時,發現Oak已經被人使用了,再想了一系列名字之後,最終,使用了提議者在喝一杯Java咖啡時無意提到的Java詞語)。5月23日,Sun公司在Sun world會議上正式發布Java和HotJava瀏覽器。IBM、Apple、DEC、Adobe、HP、Oracle、Netscap e和微軟等各大公司都紛紛停止了自己的相關開發項目,競相購買了Java使用許可證,並為自己的產品開發了相應的Java平台。
1996年1月,Sun公司發布了Java的第一個開發工具包 (JDK 1.0),這是Java發展歷程中的重要里程碑,標誌著Java成為一種獨立的開發工具。9月,約8.3萬個網頁套用了Java技術來製作。10月,Sun公司發布了Java平台的第一個即時 (JIT)編譯器。
1997年2月,JDK 1.1面世,在隨後的3周時間裡,達到了22萬次的下載量。4月2日,Java One會議召開,參會者逾一萬人,創當時全球同類會議規模之紀錄。9月,Java Developer Connection社區成員超過10萬。
1998年12月8日,第二代Java平台的企業版J2EE發布。1999年6月,Sun公司發布了第二代Java平台(簡稱為Java2)的3個版本:J2ME(Java2 Micro Edition,Java2平台的微型版),套用於移動、無線及有限資源的環境;J2SE(Java 2 Standard Edition,Java 2平台的標準版),套用於桌面環境;J2EE(Java 2Enterprise Edition,Java 2平台的企業版),套用於基於Java的套用伺服器。Java 2平台的發布,是Java發展過程中最重要的一個里程碑,標誌著Java的套用開始普及。
1999年4月27日,HotSpot虛擬機發布。HotSpot虛擬機發布時是作為JDK 1.2的附加程式提供的,後來它成為了JDK 1.3及之後所有版本的Sun JDK的默認虛擬機 。
2000年5月,JDK1.3、JDK1.4和J2SE1.3相繼發布,幾周后其獲得了Apple公司Mac OS X的工業標準的支持。2001年9月24日,J2EE1.3發布。2002年2月26日,J2SE1.4發布。自此Java的計算能力有了大幅提升,與J2SE1.3相比,其多了近62%的類和接口。在這些新特性當中,還提供了廣泛的XML支持、安全套接字 (Socket)支持 (通過SSL與TLS協定)、全新的I/OAPI、正則表達式、日誌與斷言。2004年9月30日,J2SE1.5發布,成為Java語言發展史上的又一里程碑。為了表示該版本的重要性,J2SE 1.5更名為Java SE 5.0 (內部版本號1.5.0),代號為“Tiger”,Tiger包含了從1996年發布1.0版本以來的最重大的更新,其中包括泛型支持、基本類型的自動裝箱、改進的循環、枚舉類型、格式化I/O及可變參數。
2005年6月,在Java One大會上,Sun公司發布了Java SE 6。此時,Java的各種版本已經更名,已取消其中的數字2,如J2EE更名為JavaEE,J2SE更名為JavaSE,J2ME更名為JavaME。
2006年11月13日,Java技術的發明者Sun公司宣布,將Java技術作為免費軟體對外發布。Sun公司正式發布的有關Java平台標準版的第一批原始碼,以及Java迷你版的可執行原始碼。從2007年3月起,全世界所有的開發人員均可對Java原始碼進行修改 。
2009年,甲骨文公司宣布收購Sun 。2010年,Java程式語言的共同創始人之一詹姆斯·高斯林從Oracle公司辭職。2011年,甲骨文公司舉行了全球性的活動,以慶祝Java7的推出,隨後Java7正式發布。2014年,甲骨文公司發布了Java8正式版 。
編程開發
編程環境
JDK (Java Development Kit)稱為Java開發包或Java開發工具,是一個編寫Java的Applet小程式和應用程式的程式開發環境。JDK是整個Java的核心,包括了Java運行環境 (Java Runtime Envirnment),一些Java工具和Java的核心類庫 (Java API)。不論什麼Java套用伺服器實質都是內置了某個版本的JDK。主流的JDK是Sun公司發布的JDK,除了Sun之外,還有很多公司和組織都開發了自己的JDK,例如,IBM公司開發的JDK,BEA公司的Jrocket,還有GNU組織開發的JDK 。
另外,可以把Java API類庫中的Java SE API子集和Java虛擬機這兩部分統稱為JRE (JAVA Runtime Environment),JRE是支持Java程式運行的標準環境 。
JRE是個運行環境,JDK是個開發環境。因此寫Java程式的時候需要JDK,而運行Java程式的時候就需要JRE。而JDK裡面已經包含了JRE,因此只要安裝了JDK,就可以編輯Java程式,也可以正常運行Java程式。但由於JDK包含了許多與運行無關的內容,占用的空間較大,因此運行普通的Java程式無須安裝JDK,而只需要安裝JRE即可 。
編程工具
Eclipse:一個開放原始碼的、基於Java的可擴展開發平台 。
NetBeans:開放源碼的Java集成開發環境,適用於各種客戶機和Web套用。
IntelliJ IDEA:在代碼自動提示、代碼分析等方面的具有很好的功能。
MyEclipse:由Genuitec公司開發的一款商業化軟體,是套用比較廣泛的Java應用程式集成開發環境 。
EditPlus:如果正確配置Java的編譯器“Javac”以及解釋器“Java”後,可直接使用EditPlus編譯執行Java程式 。
語言特點
1.簡單性
Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特徵去掉了,這些特徵是一般程式設計師很少使用的。例如,Java不支持go to語句,代之以提供break和continue語句以及異常處理。Java還剔除了C++的操作符過載 ( overload )和多繼承特徵,並且不使用主檔案,免去了預處理程式。因為Java沒有結構,數組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發上。
2.面向對象
Java是一個面向對象的語言。對程式設計師來說,這意味著要注意應中的數據和操縱數據的方法 (method),而不是嚴格地用過程來思考。在一個面向對象的系統中,類 (class)是數據和運算元據的方法的集合。數據和方法一起描述對象 (object)的狀態和行為。每一對象是其狀態和行為的封裝。類是按一定體系和層次安排的,使得子類可以從超類繼承行為。在這個類層次體系中有一個根類,它是具有一般行為的類。Java程式是用類來組織的。
Java還包括一個類的擴展集合,分別組成各種程式包 (Package),用戶可以在自己的程式中使用。例如,Java提供產生圖形用戶接口部件的類 (java.awt包),這裡awt是抽象視窗工具集 (abstract windowing toolkit)的縮寫,處理輸入輸出的類 (java.io包)和支持網路功能的類 (java.net包)。
3.分布性
Java設計成支持在網路上套用,它是分散式語言。Java既支持各種層次的網路連線,又以Socket類支持可靠的流 (stream)網路連線,所以用戶可以產生分散式的客戶機和伺服器。
網路變成軟體套用的分布運載工具。Java程式只要編寫一次,就可到處運行。
4.編譯和解釋性
Java編譯程式生成位元組碼 (byte-code),而不是通常的機器碼。Java位元組碼提供對體系結構中性的目標檔案格式,代碼設計成可有效地傳送程式到多個平台。Java程式可以在任何實現了Java解釋程式和運行系統 (run-time system)的系統上運行。
在一個解釋性的環境中,程式開發的標準“連結”階段大大消失了。如果說Java還有一個連結階段,它只是把新類裝進環境的過程,它是增量式的、輕量級的過程。因此,Java支持快速原型和容易試驗,它將導致快速程式開發。這是一個與傳統的、耗時的“編譯、連結和測試”形成鮮明對比的精巧的開發過程。
5.穩健性
Java原來是用作編寫消費類家用電子產品軟體的語言,所以它是被設計成寫高可靠和穩健軟體的。Java消除了某些編程錯誤,使得用它寫可靠軟體相當容易。
Java是一個強類型語言,它允許擴展編譯時檢查潛在類型不匹配問題的功能。Java要求顯式的方法聲明,它不支持C風格的隱式聲明。這些嚴格的要求保證編譯程式能捕捉調用錯誤,這就導致更可靠的程式。
可靠性方面最重要的增強之一是Java的存儲模型。Java不支持指針,它消除重寫存儲和訛誤數據的可能性。類似地,Java自動的“無用單元收集”預防存儲漏泄和其它有關動態存儲分配和解除分配的有害錯誤。Java解釋程式也執行許多運行時的檢查,諸如驗證所有數組和串訪問是否在界限之內。
異常處理是Java中使得程式更穩健的另一個特徵。異常是某種類似於錯誤的異常條件出現的信號。使用try/catch/finally語句,程式設計師可以找到出錯的處理代碼,這就簡化了出錯處理和恢復的任務。
6.安全性
Java的存儲分配模型是它防禦惡意代碼的主要方法之一。Java沒有指針,所以程式設計師不能得到隱蔽起來的內幕和偽造指針去指向存儲器。更重要的是,Java編譯程式不處理存儲安排決策,所以程式設計師不能通過查看聲明去猜測類的實際存儲安排。編譯的Java代碼中的存儲引用在運行時由Java解釋程式決定實際存儲地址。
Java運行系統使用位元組碼驗證過程來保證裝載到網路上的代碼不違背任何Java語言限制。這個安全機制部分包括類如何從網上裝載。例如,裝載的類是放在分開的名字空間而不是局部類,預防惡意的小應用程式用它自己的版本來代替標準Java類。
7.可移植性
Java使得語言聲明不依賴於實現的方面。例如,Java顯式說明每個基本數據類型的大小和它的運算行為 (這 些數據類型由Java語法描述)。
Java環境本身對新的硬體平台和作業系統是可移植的。Java編譯程式也用Java編寫,而Java運行系統用ANSIC語言編寫。
8.高性能
Java是一種先編譯後解釋的語言,所以它不如全編譯性語言快。但是有些情況下性能是很要緊的,為了支持這些情況,Java設計者製作了“及時”編譯程式,它能在運行時把Java位元組碼翻譯成特定CPU (中央處理器)的機器代碼,也就是實現全編譯了。
Java位元組碼格式設計時考慮到這些“及時”編譯程式的需要,所以生成機器代碼的過程相當簡單,它能產生相當好的代碼。
9.多線索性
Java是多線索語言,它提供支持多線索的執行 (也稱為輕便過程),能處理不同任務,使具有線索的程式設計很容易。Java的lang包提供一個Thread類,它支持開始線索、運行線索、停止線索和檢查線索狀態的方法。
Java的線索支持也包括一組同步原語。這些原語是基於監督程式和條件變數風範,由C.A.R.Haore開發的廣泛使用的同步化方案。用關鍵字synchronized,程式設計師可以說明某些方法在一個類中不能並發地運行。這些方法在監督程式控制之下,確保變數維持在一個一致的狀態。
10.動態性
Java語言設計成適應於變化的環境,它是一個動態的語言。例如,Java中的類是根據需要載入的,甚至有些是通過網路獲取的。
工作原理
由四方面組成:
(1)Java程式語言
(2)Java類檔案格式
(3)Java虛擬機
(4)Java應用程式接口
當編輯並運行一個Java程式時,需要同時涉及到這四種方面。使用文字編輯軟體 (例如 記事本 、 寫字板 、 UltraEdit 等)或集成開發環境 ( Eclipse 、MyEclipse等)在Java源檔案中定義不同的類 ,通過調用類 (這些類實現了Java API)中的方法來訪問資源系統,把源檔案編譯生成一種二進制中間碼,存儲在class檔案中,然後再通過運行與作業系統平台環境相對應的Java虛擬機來運行class檔案,執行編譯產生的位元組碼,調用class檔案中實現的方法來滿足程式的Java API調用 。
語言基礎
基本數據結構
在Java中有8種數據類型來存儲數值、字元和布爾值。
整數類型
整數型用來存儲整數數值,即沒有小數部分的數值。可以是正數,也可以是負數。整數數據在Java程式中有3種表示形式,分別為十進制、八進制和十六進制。
整型數據根據它所占內容大小的不同可分為4種類型。
數據類型 | 記憶體 |
byte | 8位 |
short | 16位 |
int | 32位 |
long | 64位 |
浮點類型
數據類型 | 記憶體 |
float | 32位 |
double | 64位 |
字元類型
字元類型用於存儲單個字元,占用16位(兩個位元組)的記憶體空間。在定義字元型變數時,要以單引號表示。使用char關鍵字可定義字元變數。
數據類型 | 記憶體 |
char | 16位 |
布爾類型
布爾類型又稱邏輯類型,通過關鍵字boolean來定義布爾類型變數,只有隻有true和false兩個取值,分別代表布爾邏輯中的“真”和“假”。布爾類型通常被用在流程控制中作為判斷條件。
關鍵字
關鍵字 | 含義 |
abstract | 抽象類或方法 |
assert | 用來查找內部程式錯誤 |
break | 跳出一個switch或循環 |
byte | 8位整數類型 |
case | switch的一個分支 |
catch | 捕獲異常的try塊子句 |
class | 定義一個類類型 |
continue | 在循環末尾繼續 |
default | switch的預設語句 |
do | do/while循環最前面的語句 |
double | 雙精度浮點數類型 |
else | if語句的else子句 |
enum | 枚舉類型 |
extends | 定義一個類的父類 |
final | 一個常量,或不能覆蓋的一個類或方法 |
finally | try塊中總會執行的部分 |
float | 單精度浮點數類型 |
for | 一個循環類型 |
if | 一個條件語句 |
implements | 定義一個類實現的接口 |
import | 導入一個包 |
instanceof | 測試一個對象是否是某個類的實例 |
int | 32位整型數 |
interface | 接口,一種抽象類型,僅有方法和常量的定義 |
long | 64位長整數型 |
native | 由宿主系統實現的一個方法 |
new | 分配新的類實例 |
null | 一個空引用 |
package | 包含類的一個包 |
private | 表示私有欄位,或者方法等,只能從類內部訪問 |
protected | 表示保護類型欄位 |
public | 表示共有屬性或者方法 |
return | 從一個方法中返回 |
short | 16位整數類型 |
static | 這個特性是這個類特有的,而不屬於這個類的對象 |
strictfp | 對浮點數計算使用嚴格的規則 |
super | 超類對象或構造函式 |
switch | 選擇語句 |
synchronized | 對執行緒而言是原子的方法或代碼塊 |
this | 當前類的一個方法或構造函式的隱含參數 |
throw | 拋出一個異常 |
throws | 一個方法可能拋出的異常 |
transient | 標誌非永久性的數據 |
try | 捕獲異常的代碼塊 |
void | 標記方法不返回任何值 |
volatile | 標記欄位可能會被多個執行緒同時訪問,而不做同步 |
while | 一種循環 |
關鍵字參考資料 來源
運算符
運算符是一些特殊的符號,主要用於數學函式、一些類型的賦值語句和邏輯比較方面。
賦值運算符
賦值運算符以符號“=”表示,它是一個二元運算符(對兩個運算元作處理),其功能是將右方運算元所含的值賦給左方的運算元。
例如:
算術運算符
運算符 | 說明 |
+ | 加 |
- | 減 |
* | 乘 |
/ | 除 |
% | 取餘數 |
自增和自減運算符
自增和自減是單目運算符,可以放在操作元之前,也可以放在操作元之後。操作元必須是一個整型或浮點型變數。自增、自減運算符的作用是使變數的值增1或減1。放在操作元前面的自增、自減運算符,會先將變數的值加1或減1,然後再使該變數參與表達式的運算。放在操作元後面的自增、自減運算符,會先使變數參與表達式的運算,然後再將該變數的值加1或減1。
例如:
假設a=5
比較運算符
比較運算符屬於二元運算符,用於程式中的變數之間,變數和自變數之間以及其他類型的信息之間的比較。比較運算符的運算結果是boolean型。當運算符對應的關係成立時,運算的結果為true,否則為false。比較運算符共有6個,通常作為判斷的依據用於條件語句中。
運算符 | 說明 |
> | 比較左方是否大於右方 |
< | 比較左方是否小於右方 |
== | 比較左方是否等於右方 |
> = | 比較左方是否大於等於右方 |
<= | 比較左方是否小於等於右方 |
!= | 比較左方是否不等於右方 |
邏輯運算符
運算符 | 作用 |
&& | 邏輯與 |
|| | 邏輯或 |
! | 邏輯非 |
語言基礎參考資料來源
程式舉例
main方法,正如注釋所說,這是程式開始執行的第一行。對於一個Java應用程式來說,main方法是必需的,Java解釋器在沒有生成任何對象的情況下,以main作為入口來執行程式。每個類中可以定義多個方法,但main方法只能有一個。關鍵字public表示訪問許可權,指明所有的類都可以使用這一方法。本例中,main必須被定義為public類型,因為當程式開始執行時它需要被它的類之外的代碼調用。關鍵字static指明該方法是一個類方法。關鍵字void指明main()方法不返回任何值。main方法圓括弧中定義的String args[]是傳送給main方法的參數,參數名為args,它是類String的一個對象。方法的參數用“類名參數名”來指定,多個參數間用逗號分隔。該行的最後一個字元是“{”,它表示了main程式體的開始,一個方法中包含的所有代碼都將包括在這對花括弧中間。另外,main僅是解釋器開始工作的地方,一個複雜的程式可能包含幾十個類,但這些類僅需要一個main方法。
語言標準
1997年11月17日,國際標準化組織 (ISO)同意採納Sun公司的專利技術——Java作為ISO標準。JAVA作為一個技術標準供公眾無償使用。根據ISO的批准,Sun公司將可提交JAVA的標準化平台規範。
發布時間 | 名稱 |
2000年11月15日 | ISO/TS 10303-27:2000 |
2006年5月15日 | ISO/IEC 19777-2:2006 |
2014年7月15日 | ISO/IEC TR 13066-6:2014 |
2015年8月15日 | ISO 20210:2015 |
2016年3月15日 | ISO/IEC 30106-2:2016 |
語言標準參考資料
語言規範
JCP (Java Community Process)是一個開放的國際組織,主要由Java開發者以及被授權者組成,職能是發展和更新Java技術規範、參考實現 (RI)、技術兼容包 (TCK)。
JCP維護的規範包括Java ME、Java SE、Java EE、XML、OSS、JAIN等。組織成員可以提交JSR (Java Specification Requests),通過特定程式以後,進入到下一版本的規範裡面。
JSR是早期提議和最終發布的Java平台規範的具體描述。通常,一個新的JSR的提出是為了增加或者規範Java平台的功能。某個具體的JSR由專家組共同來制定,工作由組長協調。例如,CLDC1.0 (Connected Limited Device Configuration,JSR30)由Sun公司的Antero Taivalsaari擔任組長,同時專家組的成員還包括Siemens、Motorola、Nokia、Symbian等。Java ME平台規範是在JSR68中定義的,規範組長是Sun公司的Jon Courtney。
JSR完成後,相關的規範及JavaAPI會在JCP的官方網站發布。設備製造商可以在自己的產品中實現某個JSR,如MIDP2.0 (JSRll8)。但是這些都必須要通過TCK (Technology Compatibility Kit)測試以確保技術兼容性。
按照技術類別可以分成以下幾類:
1、J2EE平台規範
2、J2SE平台規範
3、J2ME平台規範
4、運營支持系統規範 (OSS)
5、綜合網路的Java 套用 (JAIN)
6、XML 操作規範
技術套用
1、Android套用
許多的 Android套用都是Java程式設計師開發者開發。雖然 Android運用了不同的JVM以及不同的封裝方式,但是代碼還是用Java語言所編寫。相當一部分的手機中都支持JAVA遊戲,這就使很多非編程人員都認識了JAVA。
2、在金融業套用的伺服器程式
Java在金融服務業的套用非常廣泛,很多第三方交易系統、銀行、金融機構都選擇用Java開發,因為相對而言,Java較安全 。大型跨國投資銀行用Java來編寫前台和後台的電子交易系統,結算和確認系統,數據處理項目以及其他項目。大多數情況下,Java被用在伺服器端開發,但多數沒有任何前端,它們通常是從一個伺服器 (上一級)接收數據,處理後發向另一個處理系統 (下一級處理)。
3、網站
Java 在電子商務領域以及網站開發領域占據了一定的席位。開發人員可以運用許多不同的框架來創建web項目,SpringMVC,Struts2.0以及frameworks。即使是簡單的 servlet,jsp和以struts為基礎的網站在政府項目中也經常被用到。例如醫療救護、保險、教育、國防以及其他的不同部門網站都是以Java為基礎來開發的。
4、嵌入式領域
Java在嵌入式領域發展空間很大。在這個平台上,只需130KB就能夠使用Java技術 (在智慧卡或者感測器上)。
5、大數據技術
Hadoop以及其他大數據處理技術很多都是用Java,例如Apache的基於Java的HBase和Accumulo以及 ElasticSearchas。
6、高頻交易的空間
Java平台提高了這個平台的特性和即使編譯,他同時也能夠像 C++ 一樣傳遞數據。正是由於這個原因,Java成為的程式設計師編寫交易平台的語言,因為雖然性能不比C++,但開發人員可以避開安全性,可移植性和可維護性等問題。
7、科學套用
Java在科學套用中是很好選擇,包括自然語言處理。最主要的原因是因為Java比C++或者其他語言相對其安全性、便攜性、可維護性以及其他高級語言的並發性更好。
學習指南
考試
Sun公司的Java認證共有以下四種:Java程式設計師 (SCJP)、Java開發員 (SCJP)、Java Web組件的開發(SCWD)和Java2企業級設計師企業級技術(SCJA)。中國開展較為普遍的Java認證考試為前兩種,其中,Java程式設計師的認證考試以Sun公司指定的JavaSL-275為教材,考試號為310-025。Java開發員的認證考試以Sun指定的JavaSL-285為教材,機考部分的考試號為310-027。
Sun Certified Java Programmer (SCJP)
Java 程式設計師認證,測試Java 程式設計的要領和能力,內容側重於Java 的語法及JDK (Java Development Kit)。
Sun Certified Java Developer (SCJD)
Java 開發員認證,進一步測試用Java 開發應用程式的能力。必須先完成一個程式設計的項目後,再回答與此項目相關的幾個問題。
Sun Certified Web Component Developer for Java 2Platform Enterprise Edition (SCWD)
Web 組件開發員認證,測試技術人員對Java Servlets 和JSP(Java Server Page)的程式開發技巧。
Sun Certified Enterprise Architect for J2EE Technology (SCAJ)
Java2 企業級設計師認證是Java 最高級的認證,測試對J2EE 架構及其他系統整合的相關技術經驗及能力。
Sun公司定製的Java程式設計師課程的標準課件的培訓期為5天 (30個學時)。培訓期間,講師使用Sun公司指定教材,全面系統地講述課程的內容,並根據各知識點所需要掌握的深度,有層次、有重點、有目的地指導學員的學習。同時,對各種題型的分析和講解更能幫助學員直觀、準確地了解java認證考試。
教材
《Java從入門到精通(第3版)》:從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了使用Java語言進行程式開發需要掌握的知識 。
《Java程式語言(第3版)》:該書向熟悉基本編程概念的人講述Java程式語言。該書解釋了Java語言,但不是晦澀的正式介紹,也沒有覆蓋Java語言的所有方面 。
《瘋狂Java講義》:該書深入介紹了Java編程的相關方面,全書內容覆蓋了Java的基本語法結構、Java的面向對象特徵、Java集合框架體系、Java泛型、異常處理、Java GUI編程、JDBC資料庫編程、Java注釋、Java的IO流體系、Java多執行緒編程、Java網路通信編程和Java反射機制 。
《Java編程思想(第4版)》:以JDK5.0為基礎,在第3版的基礎上,添加了新的語言特性,並且對第3版的結構進行了調整,使得所有章節的安排更加遵照循序漸進的特點,同時每一章的內容在分量上也都更加均衡,這使讀者能夠更加容易地閱讀本書並充分了解每章所講述的內容 。
《Java經典實例(第2版)》:本書囊括了許多有用的信息。然而,由於所涉及的主題廣泛,不可能對所有主題都進行詳盡地闡述。因此,本書還提供了相關的web站點與參考書籍。這也是為了本書的目標讀者:想學習更多Java的人 。
《Java語言程式設計》:該書是清華大學出版社《普通高校本科計算機專業特色教材精選》叢書之一,也是普通高等教育“十一五” 國家級規劃教材。該教材以培養套用型計算機人才為目標,立足課程改革和教材創新,在總結作者多年來從事Java語言教學工作經驗的基礎上形成了教材的核心內容。本教材可為普通高等院校計算機專業學生學習使用,也適用於自學 。
語言評價
發展前景
計算機的誕生及廣泛套用推動了IT領域的發展,但21世紀的計算機早已不是訪問INTERNET的唯一的途徑。各類更具信息化的電子產品逐漸進入IT領域,推動了PC時代的大發展。由於各種消費信息的急劇增加,傳統的客戶機的各方麵條件均不如PC,PC的發展對伺服器的套用管理體統也提出了更高標準。Java語言完全滿足了PC的條件,在減少記憶體,直接在各類電子產品中運行,在網路中可被任何設備所識別,充分利用網路資源等方面有所突破創新,為PC時代的發展創造了有力條件。
隨著IT產業的發展,許多企業中的計算機應用程式也在隨之轉型,企業中所套用的計算機模式逐漸向客戶端較小、伺服器隨之增大、資料庫的容量也在相應增加的方向轉變。此外,加上Java語言獨有的特點,根據其在各項伺服器中應用程式的開發所占有的優勢,企業版的J2SE為企業環境中計算機模式的套用提供了良好的平台。
Java語言為與資料庫聯繫緊密設計了Java servlet和SQL-J技術,以及JSP技術。隨著JSP技術的發展,使JAVA語言的網路套用更為實際化、更高效快捷,成為IT產業常用的技術。JSP以Java語言作為其伺服器端的使用語言,結合了JAVA SCRIPT等多種其他客戶端語言,使網路瀏覽器更為方便的展現。
在遠程網路教學方面,由於JAVA改變了傳統的基於Microsoft Front Page或HTML語言製作的Web頁面形態,使網路遠程教學更加朝著動態、便捷化、安全化的方向發展,豐富了網路遠程教學的手段和覆蓋面。
貢獻及影響力
Java 語言是一門隨時代快速發展的計算機語言程式,其深刻展示了程式編寫的精髓,加上其簡明嚴謹的結構及簡潔的語法編寫為其將來的發展及維護提供了保障。由於提供了網路套用的支持和多媒體的存取,會推動Internet和企業網路的Web的套用 。另外,為了保持Java的增長和推進Java社區的參與,Sun公司在Java One開發者大會上宣布開放Java核心原始碼,以鼓勵更多的人參與到Java社團活動中。來自Java社團和IBM等全球技術合作夥伴兩方面的支持,Java技術在創新和社會進步上繼續發揮強有力的重要作用 ,並且隨著其程式編寫難度的降低使得更多專業人員將精力放置於Java語言的編寫與框架結構的設計中 。