- Java程序設計:原理與范例
- 胡平主編
- 2192字
- 2018-12-29 11:56:20
前言
作為發(fā)展速度最快、最為開放的面向對象編程平臺,Java已成為網(wǎng)絡環(huán)境下軟件開發(fā)的首選技術之一。從消費類電子產(chǎn)品到超級計算機,從Android智能移動終端應用到企業(yè)級分布式計算,Java已經(jīng)滲透到人們日常生活的方方面面。
作為具有12年Java平臺下企業(yè)級商業(yè)項目設計開發(fā)經(jīng)驗及8年高校計算機專業(yè)課程教學經(jīng)驗的“實踐派”,本書主編常常思考幾個問題:為什么計算機相關專業(yè)的很多畢業(yè)生在畢業(yè)前會報名參加一些社會機構舉辦的價格不菲的Java技術培訓(事實上,培訓的大多數(shù)內容完全可以通過自學完成)?為什么很多畢業(yè)生到企業(yè)工作后,發(fā)現(xiàn)項目所使用的一些主流技術和框架,在校期間完全不熟悉?原因就在于一些Java基礎教材在組織知識點時僅停留在知識點本身——“學院派”味道十足,未能形成完整的、貼近企業(yè)實際場景的知識體系,從而導致學生在課程結束之后,要么不知道應繼續(xù)學習哪些可用于指導企業(yè)實際開發(fā)的知識,要么因基礎不夠扎實而不具備自主學習這些知識的能力。
本書主要定位于高等學校計算機學科相關專業(yè)的Java語言程序設計課程,對于從事Java平臺下軟件開發(fā)的技術人員同樣適用。無論是行文風格,還是知識點的擴展,本書均以使讀者具備今后快速、自主學習Java平臺下企業(yè)級軟件開發(fā)所涉及技術的能力為目標。全書以原理性、實用性和可實踐性為編寫總原則,系統(tǒng)介紹Java SE所包含的全部核心知識,同時還以附錄列出主流IDE的使用、API文檔和源碼查閱、編程規(guī)范與最佳實踐、Java相關技術的學習路線等帶有強烈“工業(yè)”色彩的內容。相較于同類教材,本書具有以下特色。
1.注重核心知識,不追求“大而全”
Java不僅是一門編程語言,而且是語言、平臺、標準和規(guī)范的總和,這一點可以通過其官方站點的文檔所含內容之多得到印證;此外,由于Java的發(fā)展一直非常活躍,因此即使是只針對Java SE,也幾乎不可能將其所有內容在一本書籍中詳述殆盡。盡管一些Java基礎教材包含的內容非常多,但大多淺嘗輒止,或與實際開發(fā)關聯(lián)度不大,有些甚至花了較大篇幅介紹官方早已不再推薦使用或已被取代的技術(如AWT組件、Applet等),而目前眾多企業(yè)級應用所普遍使用的核心技術(如反射、正則表達式、泛型容器、注解等)卻未提及,這不能不說是舍本逐末。
本書不追求“大而全”,而是著重介紹Java SE的核心及目前企業(yè)開發(fā)中經(jīng)常使用到的知識,使得讀者在學習完這些內容后,具備快速學習Java EE(也包括Java ME、Android)等其他領域知識的能力。
2.強調“慣例”的重要性
隨著SSH(Struts、Spring、Hibernate)等開源框架在企業(yè)級Java項目開發(fā)中的廣泛使用,近年來,在Java開發(fā)領域流行一句名言——慣例優(yōu)于配置、配置優(yōu)于編程。這句話強調了Java平臺下越來越多的技術對“慣例”的重視,“慣例”已不再是企業(yè)對開發(fā)人員制定的可遵循可不遵循的代碼書寫規(guī)范,遵守慣例是成為一名優(yōu)秀的Java程序員所必須具備的素質之一。
本書各示例程序無論從類、方法、變量的命名規(guī)范,還是代碼的組織風格,都遵循著世界上絕大多數(shù)Java程序員所遵守的慣例,其目的就是使讀者意識到慣例的重要性,并從一開始就養(yǎng)成遵守這些慣例的良好習慣。
3.在“快速入門”和“參考指南”之間合理平衡
學習一種新技術,閱讀官方站點提供的文檔無疑是較好的方式。通過閱讀官方文檔中類似于“Quick Start”(快速入門)的內容,可以對一種技術有一個概覽性的認識——該技術是什么、能做什么,以及該技術的簡單示例。若要以該技術開發(fā)實際的項目,則還需要繼續(xù)閱讀其“Reference/Guide”(參考/指南)——與該技術的高級主題相關的文檔。相比之下,“快速入門”內容簡單,讀者通過其中可實踐的示例,能夠快速掌握一門技術最基本的用法,但其缺點也很明顯——很難指導實際項目的開發(fā);而“參考/指南”雖擴展和延伸度都較為深入,但初學者閱讀這樣的內容,不僅需要花費大量的時間,而且往往會因為沒有實際項目經(jīng)驗而不知不覺地偏離學習主線,因此不適合初學者。
本書大多數(shù)知識點以“快速入門”型的示例程序開始,并在“綜合范例”中做適當擴展后及時回歸到知識主線。此外,在羅列相關API時也針對企業(yè)實際需求有所取舍,以期在“快速入門”和“參考/指南”之間找到一個合理的平衡點。
4.從“編程”過渡到“設計”
軟件項目的成功實施離不開經(jīng)驗豐富的系統(tǒng)分析和設計人員,“底層的設計”比“上層的編程”更為重要——若底層設計考量充分,即使上層某個模塊的代碼寫得很糟糕,最壞的情況也只是重寫該模塊;反過來,糟糕的設計不僅會增加上層各模塊的編程難度,更為嚴重的是,需求的一點點變更(軟件項目的需求變更是頻繁且無法避免的)都可能引起現(xiàn)有代碼的大面積重寫,從而大大增加了項目失敗的風險。因此,在有了一定的編程經(jīng)驗之后,讀者應多關注設計、模式和架構等更高層面的知識。
本書在講解知識點的過程中,適當安排了一些設計模式方面的內容,并通過10余個綜合范例引導讀者加深對軟件設計層面的理解,為其今后進入軟件從業(yè)人員金字塔上層提供可能。
本書由安徽工程大學計算機與信息學院胡平老師統(tǒng)籌,全書共分為17章,其中,第12章由張義老師編寫,第14章由汪國武老師編寫,第2、4、11章由長江大學計算機科學學院李鵬老師編寫,其余各章及附錄由胡平老師編寫。感謝安徽工程大學周鳴爭教授認真細致地審閱了本書全稿,并提出了許多寶貴意見,同時也感謝電子工業(yè)出版社章海濤編輯為本書出版所做的大量工作,與志同道合的人一起討論共同關心的問題是愉快的,工作也因此而變得更有動力!
因時間倉促加之編者能力所限,書中難免存在不妥和錯漏之處,敬請讀者朋友批評指正。
2013年3月
- Google Apps Script for Beginners
- Designing Machine Learning Systems with Python
- TypeScript Essentials
- Spring 5.0 Microservices(Second Edition)
- Kubernetes實戰(zhàn)
- 華為HMS生態(tài)與應用開發(fā)實戰(zhàn)
- 編寫高質量代碼:改善Python程序的91個建議
- C語言程序設計案例精粹
- Elasticsearch Server(Third Edition)
- 精通MATLAB(第3版)
- Learning jQuery(Fourth Edition)
- 從零開始學C#
- Deep Learning with R Cookbook
- Bitcoin Essentials
- 零基礎PHP從入門到精通