- Java從入門到精通(第2版)
- 龍馬高新教育策劃 魔樂科技(MLDN)軟件實訓(xùn)中心編著 張玉宏主編
- 1487字
- 2019-01-02 04:58:28
前言
“從入門到精通”系列是專為初學(xué)者量身打造的一套編程學(xué)習(xí)用書,由知名計算機(jī)圖書策劃機(jī)構(gòu)“龍馬高新教育”精心策劃而成。
本書主要面向Java 初學(xué)者和愛好者,旨在幫助讀者掌握J(rèn)ava基礎(chǔ)知識、了解開發(fā)技巧并積累一定的項目實戰(zhàn)經(jīng)驗。當(dāng)讀者系統(tǒng)地學(xué)習(xí)完本書內(nèi)容之后,就可以驕傲地宣布—“我是一名真正的Java程序員了!”。
為什么要寫這樣一本書
荀子曰:不聞不若聞之,聞之不若見之,見之不若知之,知之不若行之。
實踐對于學(xué)習(xí)的重要性由此可見一斑。縱觀當(dāng)前編程圖書市場,理論知識與實踐經(jīng)驗的脫節(jié),是很多Java 圖書的寫照。為了杜絕這一現(xiàn)象,本書立足于實戰(zhàn),從項目開發(fā)的實際需求入手,將理論知識與實際應(yīng)用相結(jié)合。目標(biāo)就是讓初學(xué)者能夠快速成長為初級程序員,并擁有一定的項目開發(fā)經(jīng)驗,從而在職場中擁有一個高起點。
Java的最佳學(xué)習(xí)路線
本書總結(jié)了作者多年的教學(xué)實踐經(jīng)驗,為讀者設(shè)計了最佳的學(xué)習(xí)路線。

本書特色
? 零基礎(chǔ)、入門級的講解
無論讀者是否從事計算機(jī)相關(guān)行業(yè),是否接觸過Java,是否使用Java開發(fā)過項目,都能從本書中找到最佳起點。
? 超多、實用、專業(yè)的范例和項目
本書結(jié)合實際工作中的范例,逐一講解Java的各種知識和技術(shù)。最后,還以實際開發(fā)項目來總結(jié)本書所學(xué)內(nèi)容,幫助讀者在實戰(zhàn)中掌握知識,輕松擁有項目經(jīng)驗。
? 隨時檢測自己的學(xué)習(xí)成果
每章首頁羅列了“本章要點”,以便讀者明確學(xué)習(xí)方向。每章最后的“實戰(zhàn)練習(xí)”則根據(jù)所在章的知識點精心設(shè)計而成,讀者可以隨時自我檢測,鞏固所學(xué)知識。
? 細(xì)致入微、貼心提示
本書在講解過程中使用了“提示”、“注意”、 “技巧”等小欄目,幫助讀者在學(xué)習(xí)過程中更清楚地理解基本概念、掌握相關(guān)操作,并輕松獲取實戰(zhàn)技巧。
超值光盤
? 45小時全程同步教學(xué)錄像
涵蓋本書所有知識點,詳細(xì)講解每個范例及項目的開發(fā)過程及關(guān)鍵點。幫助讀者更輕松地掌握書中所有的Java程序設(shè)計知識。
? 超多王牌資源大放送
贈送大量超值資源,包括48小時Java項目實戰(zhàn)教學(xué)錄像 、 14小時Oracle項目實戰(zhàn)教學(xué)錄像、857頁Java SE類庫查詢手冊、Eclipse常用快捷鍵說明文檔、Eclipse提示與技巧電子書、50個Java常見面試題及解析電子書、21個Java常見錯誤及解決方案電子書、25個Java高效編程技巧、Java程序員職業(yè)規(guī)劃、Java程序員面試技巧等。
讀者對象
? 沒有任何Java基礎(chǔ)的初學(xué)者
? 有一定的Java基礎(chǔ),想精通Java 的人員
? 有一定的Java 基礎(chǔ),缺乏Java 實戰(zhàn)經(jīng)驗的人員
? 大專院校及培訓(xùn)學(xué)校的老師和學(xué)生
光盤使用說明
01. 光盤運行后首先播放片頭動畫,之后進(jìn)入光盤的主界面。其中包括【課堂再現(xiàn)】、【Java和Oracle項目實戰(zhàn)教學(xué)錄像】、【Java培訓(xùn)】三個學(xué)習(xí)通道,和【范例源碼】、【實戰(zhàn)練習(xí)答案】、【贈送資源】、【幫助文件】、【退出光盤】五個功能按鈕。

02. 單擊【課堂再現(xiàn)】按鈕,進(jìn)入多媒體同步教學(xué)錄像界面。在左側(cè)的章號按鈕上單擊鼠標(biāo)左鍵,在彈出的快捷菜單上單擊要播放的節(jié)名,即可開始播放相應(yīng)的教學(xué)錄像。

03. 單擊【Java和Oracle項目實戰(zhàn)教學(xué)錄像】按鈕,打開教學(xué)錄像文件夾,在其子文件夾中選擇要播放的視頻文件,即可播放錄像。

04.單擊【范例源碼】按鈕,可打開本書范例源碼文件夾。
05. 單擊【實戰(zhàn)練習(xí)答案】按鈕,可在打開的文件夾中看到實戰(zhàn)練習(xí)答案。
06. 單擊【贈送資源】按鈕可以查看隨本書贈送的資源。
07. 單擊【幫助文件】按鈕,可以打開“光盤使用說明.pdf”文檔,該說明文檔詳細(xì)介紹了光盤在電腦上的運行環(huán)境及運行方法等。
08. 單擊【退出光盤】按鈕,即可退出本光盤系統(tǒng)。
網(wǎng)站支持
更多學(xué)習(xí)資料,請訪問www.51pcbook.cn。
創(chuàng)作團(tuán)隊
本書由龍馬高新教育策劃,河南工業(yè)大學(xué)張玉宏博士任主編(負(fù)責(zé)第0~12章及第19~20章),王云俠老師(負(fù)責(zé)第13~18章)、國家開放大學(xué)郝智紅博士(負(fù)責(zé)第21~24章)和魏蔚博士(負(fù)責(zé)第25~29章)任副主編,參加資料整理的人員有王凱旋、蔡耀、李冰凱、李瑜、高澤民、宋文舉、靳浩東、梁成浩、孔萬里、李震、趙源源、喬娜、周奎奎、王果、陳小杰、左琨、鄧艷麗、崔姝怡、侯蕾、左花蘋、劉錦源、普寧、王常吉、師鳴若、鐘宏偉、陳川、劉子威、徐永俊、朱濤和張允等。
在編寫過程中,我們竭盡所能地將最準(zhǔn)確的Java理解和感悟呈現(xiàn)給讀者,但也難免有疏漏和不妥之處,敬請不吝指正。若您在學(xué)習(xí)過程中遇到困難或疑問,或有任何建議,可發(fā)送電子郵件至zhangyi@ptpress.com.cn。
編者
第0章Java 學(xué)習(xí)指南
本章視頻教學(xué)錄像:1 小時30 分鐘
Java語言是一門優(yōu)秀的編程語言,它的優(yōu)點是與平臺無關(guān),可以實現(xiàn)“一次編寫,到處運行”。Java是一門面向?qū)ο蟮挠嬎銠C(jī)語言,它簡潔高效,具有高度的可移植性。本章介紹Java的來源、基本思想、技術(shù)體系、應(yīng)用領(lǐng)域和前景以及學(xué)習(xí)Java的技術(shù)路線。
本章要點(已掌握的在方框中打鉤)
□ 了解Java的來源
□ 了解Java 的基本思想
□ 了解Java 的技術(shù)體系、應(yīng)用前景
0.1 Java的來源
Java源自Sun公司的一個叫Green的項目,其原先的目的是為家用電子消費產(chǎn)品開發(fā)一個分布式代碼系統(tǒng),這樣就可以將通信和控制信息發(fā)給電冰箱、電視機(jī)、烤面包機(jī)等家用電器,對它們進(jìn)行控制和信息交流。最初Green項目的工程師們準(zhǔn)備采用C++,但C++比較復(fù)雜,最后經(jīng)過裁剪、優(yōu)化和創(chuàng)新,1990年,由Sun公司的James Gosling(詹姆斯·高斯林)領(lǐng)導(dǎo)的小組基于C++開發(fā)了一種與平臺無關(guān)的新語言O(shè)ak(Java的前身)。Oak的取名緣于Gosling辦公室外有一棵枝繁葉茂的橡樹,這在硅谷是一種很常見的樹。
Oak主要用于為各種家用電器編寫程序,Sun公司曾以O(shè)ak語言投標(biāo)一個交互式電視項目,但結(jié)果被SGI(硅圖公司——1982年成立于美國)打敗。由于這些智能化家電的市場需求沒有預(yù)期的高, Sun公司放棄了該項計劃,Oak幾乎面臨夭折,恰巧這時Mark Ardreesen(美國軟件工程師,曾創(chuàng)辦網(wǎng)景通訊公司)開發(fā)的Mosaic瀏覽器(互聯(lián)網(wǎng)歷史上第一個獲普遍使用且能夠顯示圖片的網(wǎng)頁瀏覽器)和Netscape瀏覽器(網(wǎng)頁瀏覽器——市占率曾位居主導(dǎo)地位)啟發(fā)了Oak項目組成員,讓他們看見了Oak在互聯(lián)網(wǎng)上應(yīng)用的前景,于是他們改造了Oak。

Java主要設(shè)計者JamesGosling

Java標(biāo)志

Java吉祥物Duke
1995年1月,Oak被改名為Java,這是因為Oak是一家顯卡制造商已注冊的商標(biāo)。Oak若想發(fā)展壯大,法律層面上的改名勢在必行。Java是印度尼西亞“爪哇(注:Java的音譯)”島的英文名稱,該島因盛產(chǎn)咖啡而聞名。這就是Java的官方商標(biāo)是一杯濃郁的咖啡的原因。Sun隨后開發(fā)了HotJava瀏覽器,得到了Sun公司時任首席執(zhí)行官Scott McNealy的支持,觸發(fā)了Java進(jìn)軍Internet。
Java技術(shù)是由美國Sun公司倡導(dǎo)和推出的,它包括Java語言和Java Media APIs、Security APIs、Management APIs、Java Applet、Java RMI、JavaBean、JavaOS、Java Servlet、JavaServer Page以及JDBC等。Java技術(shù)的發(fā)展重要歷程簡述如下(右圖所示的是Java語言的吉祥物Duke)。
1996年2月,Sun公司發(fā)布Java芯片系列,包括PicoJava、MicroJava和UltraJava,并推出Java數(shù)據(jù)庫連接范式JDBC(Java DataDase Connectivity),并給出對應(yīng)的API(應(yīng)用程序接口)。
1996年4月,Microsoft公司、SCO公司、Apple公司(蘋果電腦公司)、NE C公司等獲得Java的許可證。Sun公司宣布允許HP、Apple、日立、IBM、Microsoft、Novell、SGI、Tamdem、SCO等多家大型信息公司將Java平臺嵌入到其操作系統(tǒng)中。
1996年5月,Sun公司在舊金山(San Francisco)舉行了第一屆JavaOne世界Java開發(fā)者大會。Sun公司在大會上推出諸如CommerceAPIs等一系列Java平臺新技術(shù)及新的HotJava開發(fā)環(huán)境等。
1996年6月,Sun公司發(fā)布JSP 1.0,這里的JSP(JavaServer Pages)是由Sun 公司倡導(dǎo)、眾多公司協(xié)同參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。Sun公司同期還推出JDK(Java開發(fā)工具包)1.3和Java Web Server 2.0。
提示
由Java源代碼編譯出的二進(jìn)制文件叫.class文件,如果使用十六進(jìn)制編輯器(如UltraEdit)打開這個.class文件,你會發(fā)現(xiàn)該文件最前面的32位將顯示為CA FE BA BE,連接起來也就是詞組“CAFE BABE ”(咖啡寶貝),如下圖所示。諸如James Gosling等這類編程天才都是在這些不經(jīng)意的地方“雁過留聲,人過留名”。

文件中的“咖啡寶貝”Java class。
1996年9月,Addison-Wesley和Sun公司推出Java虛擬機(jī)規(guī)范和Java類庫。
1997年4月,第二屆JavaOne世界大會召開,參與者逾一萬人,創(chuàng)當(dāng)時全球同類會議規(guī)模紀(jì)錄。Java已深得業(yè)界認(rèn)可。
1998年12月,Java2企業(yè)平臺J2EE發(fā)布。
1999年6月,Sun公司針對不同用戶群,發(fā)布了Java的三個版本:標(biāo)準(zhǔn)版(J2SE)、企業(yè)版(J2EE)和微型版(J2ME)。
2000年9月,Sun公司發(fā)布JSP1.2和Java Servlet 2.3 API。
2001年9月,J2EE1.3發(fā)布。
2002年2月,J2SE1.4發(fā)布,自此Java的計算能力有大幅提升。
2004年9月,J2SE1.5發(fā)布,成為Java語言發(fā)展史上的又一個里程碑。為了表示該版本的重要性, J2SE1.5更名為Java SE 5.0。
2005年6月,JavaOne大會召開,Sun公司公開Java SE 6。此時,Java的各種版本已經(jīng)更名,取消了其中的數(shù)字“2”:J2EE更名為Java EE,J2SE更名為Java SE,J2ME更名為Java ME。
2006年12月,Sun公司發(fā)布JRE 6.0。
2009年4月,Oracle (甲骨文)公司以總額74億美金收購Sun公司,Java版權(quán)歸Oracle公司所有。
2009年12月,Sun公司發(fā)布企業(yè)版升級版Java EE 6。
2011年7月28日,Oracle公司發(fā)布Java SE 7。
0.2 Java的基本思想
在過去,大多數(shù)程序在移植到不同的操作系統(tǒng)平臺(如UNIX、Linux和Windows等)上時,程序員通常不得不重新調(diào)試與編譯這些程序,有時甚至需要重寫。Java最大的優(yōu)點就是在設(shè)計之初就秉承了“一次編寫,到處運行”思想(Write Once, Run Everywhere,簡稱WORE,有時也寫成“Write Once, Run Anywhere”,簡稱WORA),它是Sun 公司為宣傳Java語言的跨平臺特性而提出的口號。
Java的跨平臺性是指在一種平臺下用Java語言編寫的程序可以在編譯后不用經(jīng)過任何更改,就能在其他平臺上運行。比如,一個在Windows下開發(fā)出來的程序,在運行時可以無縫地部署到Linux、UNIX或Mac OS(蘋果操作系統(tǒng))環(huán)境之下。反之亦然,在Linux下開發(fā)的Java程序,同樣可在Windows等其他平臺上運行。Java是如何實現(xiàn)跨平臺性的呢?我們可用下面的圖來比擬說明。

比如說,中國人(一個平臺)說的一句問候的話語:“你好,世界!”,美國人、法國人、德國人及日本人(其他平臺)都能理解中國人的“問候”。之所以能這樣,這得益于英文、法語、德語及日語翻譯們的翻譯。Java語言聰明之處在于,它用一個名為Java虛擬機(jī)(JVM—Java Virtual Machine)的機(jī)制屏蔽了這些“翻譯”的細(xì)節(jié)。各國人盡管盡情地表達(dá)(編寫Java代碼),JVM在背后默默地幫他們干了“翻譯溝通”的活。正是因為有JVM的存在,Java程序員才可以做到“一次編寫,到處運行”——這正是Java的靈魂所在。JVM的思想將在1.6節(jié)給予更為詳細(xì)的說明。
0.3 Java的技術(shù)體系
僅從傳統(tǒng)意義上來看, Java技術(shù)體系包括以下幾個組成部分:
●Java編程語言
●class文件格式
●Java API類庫
●開源社區(qū)及商業(yè)機(jī)構(gòu)的第三方Java類庫
●各種平臺上的Java虛擬機(jī)
什么是JDK?什么又是JRE?兩者有什么區(qū)別與聯(lián)系?
JDK:我們把Java編程語言、Java API類庫和Java虛擬機(jī)這三部分統(tǒng)稱為JDK(Java Development Kit,Java 開發(fā)工具包)(注:JDK包括JRE,Java基本類庫,Java開發(fā)工具,如編輯器,調(diào)試器等)。JDK是用于支持Java程序開發(fā)的最小環(huán)境。有時為了方便起見,會以JDK來代替整個Java技術(shù)體系。
JRE: 我們把Java API類庫中的Java SE API子集和Java虛擬機(jī)這兩部分統(tǒng)稱為JRE(Java Runtime Environment,Java運行時環(huán)境),JRE是支持Java程序運行的標(biāo)準(zhǔn)環(huán)境。
二者區(qū)別與聯(lián)系:在Java技術(shù)體系上, JDK范圍涵蓋JRE,JRE是JDK的子集。如果僅僅是運行Java程序,用戶計算機(jī)只需配置JRE環(huán)境;如果用戶還想自己開發(fā)Java程序,則需要用戶安裝配置JDK環(huán)境。
按照J(rèn)ava技術(shù)關(guān)注的重點業(yè)務(wù)領(lǐng)域來劃分,Java技術(shù)體系可以分為4個平臺,如下圖所示。

⑴ Java SE(Standard Edition,標(biāo)準(zhǔn)版):支持面向桌面級應(yīng)用(如Windows下的應(yīng)用程序)的Java平臺,提供了完整的Java核心API,這個版本2005年以前稱為J2SE。
⑵ Java EE(Enterprise Edition,企業(yè)版):以Java SE為基礎(chǔ),往外延伸,增加了許多支持企業(yè)內(nèi)部使用的擴(kuò)充類,支持使用多層架構(gòu)的企業(yè)應(yīng)用(如ERP—企業(yè)資源計劃系統(tǒng)、CRM—客戶關(guān)系管理系統(tǒng)的應(yīng)用)的Java平臺,除了提供Java SE API外,還對其做了大量的擴(kuò)充并提供了相關(guān)的部署支持。這個版本2005年以前稱為J2EE。
⑶ Java ME(Micro Edition,微型版):Java ME同樣以Java SE為基礎(chǔ),但向內(nèi)精簡。它所支持的只有核心類的子集合,它支持Java程序運行在移動終端(手機(jī)、PDA—掌上電腦)上的平臺,加入了針對移動終端的支持。這個版本2005年以前稱為J2ME。Java的微型版主要是進(jìn)行嵌入式開發(fā),目前漸漸被Android開發(fā)所替代。
⑷ Java Card(智能卡版):由于服務(wù)對象定位更加明確化,Java Card版本比Java ME(微型版)更加精簡。它支持一些Java小程序(Applets)運行在小內(nèi)存設(shè)備(如容量小于64K的智能卡)的平臺上。
但是,不管Java的技術(shù)平臺如何劃分,都是以Java SE為核心的,所以掌握J(rèn)ava SE最為重要,這也是本書的主要講解范圍。如果要想進(jìn)行Java EE的開發(fā),Java SE是其中必要的組成部分,這也就是為什么在學(xué)習(xí)Java EE之前要讀者一定要有扎實的Java SE基礎(chǔ)了。
0.4 Java無處不在
Java作為Sun公司推出的新一代面向?qū)ο蟪绦蛟O(shè)計語言,特別適于互聯(lián)網(wǎng)應(yīng)用程序的開發(fā),但它的平臺無關(guān)性直接威脅到了Wintel(即微軟的Windows操作系統(tǒng)與Intel CPU所組成的個人計算機(jī))的壟斷地位,這表現(xiàn)在以下幾個方面。
信息產(chǎn)業(yè)的許多國際大公司購買了Java許可證,包括IBM、Apple、DEC、Adobe、SiliconGraphics、HP、TOSHIBA以及Microsoft等。這一點說明,Java已得到了業(yè)界的高度認(rèn)可。
眾多的軟件開發(fā)商開始支持Java軟件產(chǎn)品。例如Inprise公司的JBuilder、Oracle公司自己維護(hù)的Java開發(fā)環(huán)境JDK與JRE。
Intranet正在成為企業(yè)信息系統(tǒng)最佳的解決方案,而其中Java將發(fā)揮不可替代的作用。Intranet的目的是將Internet用于企業(yè)內(nèi)部的信息類型,它的優(yōu)點是便宜、易于使用和管理。用戶不管使用何種類型的機(jī)器和操作系統(tǒng),界面是統(tǒng)一的Internet瀏覽器,而數(shù)據(jù)庫、Web頁面、Applet、 Servlet、JSP等則存儲在Web服務(wù)器上,無論是開發(fā)人員還是管理人員,還是普通用戶都可以受益于該解決方案。
雖然Sun公司被收購了,但Java作為Sun公司的優(yōu)質(zhì)資產(chǎn)被母公司Oracle公司高度重視,因此仍然得以繼續(xù)“茁壯成長”。根據(jù)TIOBE公布的2015年1月份編程語言前10名排行榜(如下表所示), Java與C和Objective-C,名列前三甲。雖然不同的月份,前10名的地位可能有互換,但Java在整個編程領(lǐng)域的前三甲的地位基本是不動搖的。這從側(cè)面可以反映,Java的無處不在,其應(yīng)用領(lǐng)域和前景非常廣闊。

從桌面辦公到網(wǎng)絡(luò)數(shù)據(jù)庫,從PC機(jī)到嵌入式移動平臺,從Java小應(yīng)用程序(Applet)到架構(gòu)龐大的J2EE企業(yè)級解決方案,處處都有Java的身影,就連美國大型太空(NASA)項目當(dāng)中,也使用了Java來開發(fā)控制系統(tǒng)和相關(guān)軟件。
Java技術(shù)的開放性、安全性和龐大的社會生態(tài)鏈以及其跨平臺性,使得Java技術(shù)成為智能手機(jī)軟件平臺的事實性標(biāo)準(zhǔn)。在未來發(fā)展方向上,Java在Web、移動設(shè)備以及云計算等方面的應(yīng)用前景也非常廣闊。雖然面對來自網(wǎng)絡(luò)的類似于Ruby on Rails這樣編程平臺的挑戰(zhàn),但Java依然還是事實上的企業(yè)Web開發(fā)標(biāo)準(zhǔn)。隨著云計算(Cloud Computing)以及移動領(lǐng)域的擴(kuò)張,更多的企業(yè)考慮將其應(yīng)用部署在Java平臺上,那么無論是本地主機(jī),還是公共云,Java都是目前最合適的選擇。
Java是目前世界上最流行的編程語言之一,而且也成為了事實上的應(yīng)用層的開發(fā)標(biāo)準(zhǔn),在很多的開發(fā)之中,都會把Java作為一些底層代碼的操作功能的調(diào)用工具,如目前面向手機(jī)的Android開發(fā)。Java應(yīng)用領(lǐng)域之廣,也勢必促使Java開發(fā)者的就業(yè)市場呈現(xiàn)欣欣向榮的發(fā)展態(tài)勢。
學(xué)習(xí)Java不僅是學(xué)習(xí)一門計算機(jī)語言,更多的是學(xué)習(xí)一種思想,一種開發(fā)模式。對于從事軟件行業(yè)的工作人員,掌握了Java語言,可以讓自己日后的事業(yè)發(fā)展得更加順利。Java語言由于學(xué)習(xí)相對完整,Java開發(fā)人員可以輕松轉(zhuǎn)入到手機(jī)開發(fā)、.NET、PHP等語言的開發(fā)上,以后也可以更快的跨入到項目經(jīng)理的行列之中。
目前,Java人才的需求量旺盛,根據(jù)IDC(International Data Corporation,國際數(shù)據(jù)公司)的統(tǒng)計數(shù)字,在所有軟件開發(fā)類人才的需求中,對Java工程師的需求達(dá)倒全部需求量的60%~70%。同時,企業(yè)提供的薪水也不菲,通常來說,具有3年以上開發(fā)經(jīng)驗的工程師,年薪10萬元以上是一個很正常的一個薪酬水平。但I(xiàn)T企業(yè)卻很難招聘到合格的Java人才。所以讀者朋友如果想讓自己成為合格的受企業(yè)歡迎的Java程序員,需要做好自己的職業(yè)發(fā)展規(guī)劃。
首先,要定位自己的目標(biāo),然后在有的放矢地進(jìn)行自我提升。對于Java工程師來說,大致可以從三個大方向來規(guī)劃自己的職業(yè)藍(lán)圖。
(一) 繼續(xù)走技術(shù)工作之路。從技術(shù)發(fā)展方向來看,Java工程師則可以由最初的初級軟件工程師即程序員逐漸晉升至中級軟件工程師(高級程序員)、高級軟件工程師及架構(gòu)師等。走這條路,依然可進(jìn)入電信、銀行、保險專業(yè)軟件開發(fā)公司等從事軟件設(shè)計和開發(fā)工作。在信息時代,越來越多的公司重視信息化,而信息化落實起來離不開軟件開發(fā),而軟件開發(fā)中Java當(dāng)屬挑大梁者。如果選擇這個方法,程序員要腳踏實地,一步一個腳印地練好Java的基本功。對于初(中)級程序員來說首先掌握J(rèn)ava的基本語法(如類與對象、構(gòu)造方法、引用傳遞、內(nèi)部類、異常、包、Java常用類庫、Java IO及Java類集等)。當(dāng)然,如果讀者定位高級程序員以上的目標(biāo),那么目標(biāo)的實現(xiàn)主要依賴三點:一是前期扎實的Java基礎(chǔ),二是后期對軟件開發(fā)持續(xù)性熱愛,三是靠程序員個人的領(lǐng)悟。
(二)定位成為技術(shù)類管理人員,如產(chǎn)品研發(fā)經(jīng)理、技術(shù)經(jīng)理、項目經(jīng)理及技術(shù)總監(jiān)職位等。如果選擇管理方向,首先要有一定的“基層“經(jīng)驗,至少要有幾年的Java開發(fā)經(jīng)驗。否則,即使偶然因素讓你“擢升‘至’管理層”,那么也會因為“外行指導(dǎo)內(nèi)行”而飽受詬病,所以如果定位管理人員,那么成功的第一步就是至少成為一名中級以上的Java程序員,前面所言的Java基礎(chǔ)也是需要掌握的。想成為技術(shù)類管理人員,還要深諳Java設(shè)計模式及軟件工程的思想,從而能把控軟件開發(fā)的全局。一個好的技術(shù)類管理人員,不僅要自身具有很強(qiáng)的技術(shù)管理能力,同時,也要有很強(qiáng)的技術(shù)體系建設(shè)和團(tuán)隊管理的能力,對自己所處的行業(yè)技術(shù)發(fā)展趨勢和管理現(xiàn)狀具有準(zhǔn)確的判斷。統(tǒng)籌全局、集各個層次的技術(shù)人員之合力,高質(zhì)量完成軟件項目,是成為技術(shù)類管理人員的挑戰(zhàn)。
(三)在其他領(lǐng)域成就大業(yè)。Java軟件開發(fā)發(fā)展前景好,運用范圍也廣,具備Java基礎(chǔ)的工程師,還可以嘗試著在其他領(lǐng)域成就一番大業(yè)。例如,Java工程師可以從事JSP網(wǎng)站開發(fā)、移動領(lǐng)域應(yīng)用開發(fā)、電子商務(wù)開發(fā)等工作。如果從事WEB開發(fā),那么在此之前一定要熟練掌握HTML、JavaScript、XML。在WEB開發(fā)中其核心就是進(jìn)行數(shù)據(jù)庫的操作,先從JSP(Java Server Pages)學(xué)習(xí),并可以使用JSP + JDBC(Java Data Base Connectivity,Java數(shù)據(jù)庫連接)或者是JSP + ADO(ActiveX Data Objects)完成操作。JSP技術(shù)是以Java語言作為腳本語言的。之后再學(xué)習(xí)MVC設(shè)計模式(Model View Controller),它是指軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。如果掌握了MVC設(shè)計,讀者也就可以輕松地掌握AJAX(Asynchronous JavaScript and XML)和Struts技術(shù)。AJAX 是在不重新加載整個頁面的情況下與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁的手段。Struts 是Apache軟件基金會(ASF)贊助的一個開源項目。使用Struts機(jī)制可以幫助開發(fā)人員減少運用MVC設(shè)計模型開發(fā)Web應(yīng)用的時間。
之后,再學(xué)習(xí)Hibernate和Spring等輕量級實體層開發(fā)方法等。Hibernate是一個開放源代碼的Java語言下的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可便利地使用對象編程思維來操縱數(shù)據(jù)庫。Spring Framework是一個開源的Java/Java EE全功能棧,其應(yīng)用程序框架內(nèi)包含了一些基于反射機(jī)制寫的包,有了它以后程序員便可以將類的實例化寫到一個配置文件里,由相應(yīng)的Spring包負(fù)責(zé)實例化。
以上三條與Java相關(guān)的職業(yè)發(fā)展規(guī)劃之路,都以夯實Java基礎(chǔ)為根本。每一條路走到頂層,都需要重視基礎(chǔ),一步一個腳印,做事由淺入深,由簡入繁,循序漸進(jìn)。《禮記·中庸》有言:“君子之道,辟如行遠(yuǎn)必自邇,辟如登高必自卑”。這句話告訴我們,君子行事,就像走遠(yuǎn)路一樣,必定要從近處開始;就像登高山一樣,必定要從低處起步。
練就成為一名Java高手的過程可能需經(jīng)歷多年的時間。一些讀者擔(dān)心,自己可能等不到成為高手那一天,就無力開發(fā)Java了。其實,Java相關(guān)的開發(fā)行業(yè)也如陳年美酒,越陳越香。想一想,前面提到Java的核心設(shè)計者James Gosling,發(fā)髯皆白,卻依然意氣風(fēng)發(fā),時常給比他年輕很多歲的軟件開發(fā)精英們講解Java發(fā)展之道,那種指點江山的氣勢,是何等地豪邁!Java軟件開發(fā)行業(yè)職業(yè)壽命很長,能提供給從業(yè)人員更廣闊的發(fā)展方向。如果想在Java開發(fā)相關(guān)的領(lǐng)域有所建樹,多一份持久的堅持是必須的。
0.5 Java學(xué)習(xí)經(jīng)驗談
Java是一門面向?qū)ο缶幊蹋∣bject-oriented programming,簡稱OOP)語言,在學(xué)習(xí)的過程中一定要多從面向?qū)ο蟮慕嵌热タ紤]問題。在初級入門階段,讀者要以上機(jī)實訓(xùn)為主,多動手,增強(qiáng)自己對Java代碼的感性認(rèn)識。感性認(rèn)識積累多了,再配合書籍學(xué)好理論,這才能有高層次的理性認(rèn)知。
學(xué)習(xí)任何編程語言,親自動手編程實踐是必不可少的。在閱讀完每一個章節(jié)后,盡量將書上的實例代碼和課后習(xí)題親自編寫一遍。在編寫代碼的過程中,一定要理清代碼思路,發(fā)現(xiàn)問題,解決問題。對復(fù)雜的代碼要反復(fù)揣摩,直至爛熟于心。
有些源代碼已隨書光盤里配備,有些網(wǎng)站上也提供現(xiàn)成的,但作為初學(xué)者,務(wù)必不能偷懶,直接復(fù)制,拿來就用。雖然親自編寫代碼比較麻煩,也容易出錯,但請記住:糾正這些錯誤正是非常好的學(xué)習(xí)機(jī)會!
從一個Java的初學(xué)者,升級為一個編程高手,沒有捷徑。其必經(jīng)的一個成長路線正如下圖所示:(1)編寫代碼 →(2)犯錯(發(fā)現(xiàn)問題)→(3)糾錯(解決問題)→(4)自我提升……積累了一定的感性認(rèn)識后,才會有質(zhì)的突變,提升至新的境界。總之,想成為一個高水平的Java程序員,一定要多動手練習(xí),多思考。

閱讀Java書籍也要掌握一定的技巧。建議讀者在閱讀時,快速看完某一章的全部內(nèi)容,在第一遍閱讀期間,可允許在一定程度上“不求甚解”。當(dāng)讀者掌握了Java的基礎(chǔ)語法,初步理解了面向?qū)ο蟮木幊讨饕卣骱螅@時應(yīng)該重新看書——“溫故而知新”,將書中的面向?qū)ο髢?nèi)容從頭到尾再看一遍,進(jìn)行知識的歸類總結(jié)。建議在學(xué)習(xí)過程中記錄心得和感悟,把自己對某一知識點的理解記錄下來。在書本空白處,甚至可在個人的博客(如在CSDN程序員網(wǎng)站等)里紀(jì)錄下自己的感悟,這樣一來可加深自己理解,二來也可服務(wù)在此知識點困惑的其他讀者,一舉兩得。
學(xué)習(xí)要循序漸進(jìn)。在學(xué)習(xí)的初期,讀者應(yīng)從基礎(chǔ)語法學(xué)起,不要拘泥于細(xì)節(jié),耐得住性子,把書讀完,先將容易理解的部分快速學(xué)會,再去研究晦澀的部分。當(dāng)一個知識點實在搞不明白的時候,可以先把它記下來。先從宏觀上對一個知識點有個整體的把握,然后回過頭來再研究細(xì)節(jié)。一開始“有所舍棄”,之后“重頭再來”,這會提高你的學(xué)習(xí)效率,讓你養(yǎng)成一個良好的學(xué)習(xí)習(xí)慣。
在學(xué)習(xí)Java的過程中,可能會遇到許多的問題,下面推薦一些解決問題的途徑。讀者既可使用搜索引擎也可去專業(yè)的問答社區(qū)進(jìn)行提問。搜索引擎,如谷歌 (http://www.google.com.hk/)、必應(yīng) (http://cn.bing.com/)及百度(http://www.baidu.com)都是讀者朋友在學(xué)習(xí)過程中的 “好老師”。如果讀者朋友的英語水平比較好,推薦訪問國外知名網(wǎng)站StackOverFlow(http://stackoverflow.com/),這是一個高質(zhì)量的問答社區(qū),你在學(xué)習(xí)Java過程中遇到的問題,基本上其他的學(xué)習(xí)者也都會遇到,而在這里幾乎都能得到高水平的解決方案。
如果本書已不能滿足讀者朋友的需求,那么恭喜你!很高興你已從Java初學(xué)者過渡到高手“晉級者”。你所欠缺的是對面向?qū)ο缶幊趟枷敫由钊氲睦斫猓菍γ嫦驅(qū)ο蟮母鞣N特性及其實現(xiàn)細(xì)節(jié)更加熟練的掌握。建議讀者閱讀偏重工程實踐的書籍,或者諸如《Thinking in Java(Java編程思想)》等偏重理論認(rèn)知的書籍。這類書籍通常涉及大量工程經(jīng)驗,討論的議題也更加理論化,讀者需要有充分的Java實戰(zhàn)經(jīng)驗才能有所感悟和共鳴,因此并不適合作為初學(xué)者的閱讀書籍。
0.6 Java學(xué)習(xí)路線圖
本書主要是面向初學(xué)者或中級水平的讀者的。針對本書,Java學(xué)習(xí)可以大致分為三個階段。
⑴ 初級階段:學(xué)習(xí)Java基礎(chǔ)語法和類的創(chuàng)建與使用,基礎(chǔ)I/O(輸入/輸出)操作、各種循環(huán)控制、運算符、數(shù)組的定義、方法定義格式、方法重載等,并熟練使用一種開發(fā)工具,如Eclipse等。
⑵ 中級階段:掌握面向?qū)ο蟮姆庋b、繼承和多態(tài),學(xué)習(xí)常用對象和工具類,深入I/O(輸入/輸出)操作,異常處理、Java的包管理機(jī)制、集合框架等。
⑶ 高級階段:掌握J(rèn)ava的反射機(jī)制、泛型、網(wǎng)絡(luò)編程、GUI開發(fā)、多線程、高級I/O、數(shù)據(jù)庫編程、Java Applet等。

對于讀者來說,Java學(xué)習(xí)的路線在整體上需遵循:初級階段 中級階段 高級階段,循序漸進(jìn)地學(xué)習(xí)(如上圖所示),不建議讀者一開始就“越級”學(xué)習(xí),需知“欲速則不達(dá)”。在這三個階段各自內(nèi)部的知識點,沒有必然的先后次序,讀者可根據(jù)自己的實際情況“有的放矢”地學(xué)習(xí)。不管處于哪個學(xué)習(xí)階段,讀者都要重視Java的實戰(zhàn)練習(xí),等學(xué)習(xí)到高級階段還要用一些項目實訓(xùn)來提升自己。
“羅馬不是一日建成的(Rome was not built in a day)”,編程高手也不是一日能成就的。《荀子·勸學(xué)篇》亦有云:“騏驥一躍,不能十步;駑馬十駕,功在不舍。學(xué)習(xí)Java的途中沒有捷徑,需要進(jìn)行不斷地理論學(xué)習(xí)、反復(fù)地實戰(zhàn)練習(xí)才能將代碼運用靈活,就好像練習(xí)武功一樣,只有重視基本功,并持之以恒,才能讓自己的動作收放自如,招式爐火純青。
各位Java愛好者,想成為Java高手嗎?趕快行動吧!
- Spring源碼深度解析
- MATLAB 2018從入門到精通
- 21天學(xué)通C++(第7版)
- Swift權(quán)威指南
- Spring Cloud微服務(wù)架構(gòu)實戰(zhàn)
- 學(xué)校沒教的軟件工程課
- 開發(fā)者關(guān)系:方法與實踐
- 全棧Monorepo開發(fā)實戰(zhàn)(Vue 3+Fastify+Deno+pnpm)
- 現(xiàn)代API:通往架構(gòu)師之門
- 嵌入式軟件調(diào)試技術(shù)
- 精益軟件度量——實踐者的觀察與思考
- 軟件架構(gòu)指標(biāo):度量軟件系統(tǒng)的性能和架構(gòu)質(zhì)量
- 軟件測試項目實戰(zhàn)
- 測試開發(fā)實戰(zhàn)教程
- 軟件安全開發(fā)