本書(shū)從初學(xué)者的角度系統(tǒng)介紹了Java程序開(kāi)發(fā)中用到的重要基礎(chǔ)知識(shí)。全書(shū)共13個(gè)項(xiàng)目,具體包括了開(kāi)發(fā)環(huán)境、基本語(yǔ)法、面向?qū)ο笏枷爰爸匾狝PI的應(yīng)用等。設(shè)計(jì)模式是前人對(duì)代碼開(kāi)發(fā)經(jīng)驗(yàn)的總結(jié),本書(shū)拋磚引玉,在Java學(xué)習(xí)中引入了單例模式、簡(jiǎn)單工廠模式、裝飾模式、代理模式等常見(jiàn)的設(shè)計(jì)模式,鼓勵(lì)讀者模仿吸收,養(yǎng)成良好的編程習(xí)慣。本書(shū)強(qiáng)調(diào)理論和實(shí)踐相結(jié)合,理論部分通俗易懂,實(shí)踐環(huán)節(jié)案例豐富,步驟完整,以具體應(yīng)用為出發(fā)點(diǎn),幫助讀者快速掌握核心知識(shí),為后續(xù)學(xué)習(xí)打好基礎(chǔ)。本書(shū)可作為高等院校計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的教材,也可作為計(jì)算機(jī)編程愛(ài)好者的自學(xué)教材。
案例驅(qū)動(dòng),執(zhí)行結(jié)果圖解分析;涵蓋Java SE核心,探討背后思想;講解部分設(shè)計(jì)模式。本書(shū)主要針對(duì)應(yīng)用型人才的培養(yǎng),目標(biāo)讀者為信息相關(guān)專(zhuān)業(yè)的本科生、大專(zhuān)生,也可以供其他初學(xué)者學(xué)習(xí)。擬選作者都是有豐富教學(xué)經(jīng)驗(yàn)的一線老師。內(nèi)容主要以Java SE的核心知識(shí)點(diǎn)講解為主,講解Java面向?qū)ο蟮乃枷,以及Java SE中核心的類(lèi)。本書(shū)在強(qiáng)調(diào)案例驅(qū)動(dòng),提高動(dòng)手能力的前提下,也引入了對(duì)Java編程思想的講解,使學(xué)生或其他初學(xué)者理解相關(guān)技術(shù)背后的思想,做到知其然,也知其所以然。
Java語(yǔ)言是當(dāng)前應(yīng)用非常廣泛的一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,從大型復(fù)雜的企業(yè)級(jí)系統(tǒng)到小型移動(dòng)設(shè)備系統(tǒng)開(kāi)發(fā),隨處都可以看到Java活躍的身影。當(dāng)前,大部分高校計(jì)算機(jī)相關(guān)專(zhuān)業(yè)都開(kāi)設(shè)了Java程序設(shè)計(jì)相關(guān)課程。Java程序設(shè)計(jì)從基礎(chǔ)到高級(jí)需要一個(gè)長(zhǎng)期學(xué)習(xí)的過(guò)程,對(duì)于初學(xué)者來(lái)說(shuō),需要打好基礎(chǔ),樹(shù)立信心、循序漸進(jìn),同時(shí)注重編程習(xí)慣的培養(yǎng)。本書(shū)針對(duì)應(yīng)用型人才培養(yǎng),強(qiáng)調(diào)實(shí)踐動(dòng)手能力,從需求出發(fā),以案例驅(qū)動(dòng)的形式進(jìn)行組織。書(shū)中的案例都是精心設(shè)計(jì)的,只有讀者實(shí)際動(dòng)手敲過(guò)代碼,調(diào)試過(guò)代碼后才能熟能生巧,知其所用,才能真正掌握這些代碼,感受到編寫(xiě)Java程序的樂(lè)趣。全書(shū)共分為13個(gè)項(xiàng)目。項(xiàng)目1主要介紹了Java語(yǔ)言的特點(diǎn)、JDK的安裝及Eclipse開(kāi)發(fā)環(huán)境,實(shí)現(xiàn)個(gè)Java程序的開(kāi)發(fā)。項(xiàng)目2介紹Java語(yǔ)言的語(yǔ)法基礎(chǔ),如果讀者有C語(yǔ)言基礎(chǔ),學(xué)習(xí)難度不大,但是對(duì)JVM內(nèi)存劃分需要仔細(xì)體會(huì)。項(xiàng)目3和項(xiàng)目4是Java語(yǔ)言面向?qū)ο笏枷氲?重要部分,詳細(xì)講解了類(lèi)和對(duì)象的關(guān)系、封裝、繼承和多態(tài)等相關(guān)內(nèi)容,只有理解了面向?qū)ο蟮木幊趟枷,才能真正掌握J(rèn)ava語(yǔ)言的精髓。同時(shí)講解了單例模式、簡(jiǎn)單工廠模式的實(shí)現(xiàn)。項(xiàng)目5介紹了Java對(duì)異常的處理。項(xiàng)目6詳細(xì)講解了Java對(duì)多線程技術(shù)的支持。其中生產(chǎn)者和消費(fèi)者模型是難點(diǎn),通過(guò)它可以深刻理解線程間通信。項(xiàng)目7講解了包裝類(lèi)、字符串相關(guān)類(lèi)和System類(lèi)。其中字符串相關(guān)類(lèi)非常重要,讀者要盡量掌握相關(guān)方法,并理解正則表達(dá)式。項(xiàng)目8講解了時(shí)間處理、隨機(jī)數(shù)和Math類(lèi)的用法,難度不大。項(xiàng)目9講解了集合類(lèi),要重點(diǎn)掌握各種集合的創(chuàng)建,增、刪、改、查,以及遍歷的方法。項(xiàng)目10講解File類(lèi)和輸入輸出流,編寫(xiě)程序免不了要和文件打交道,涉及的類(lèi)較多,同時(shí)講解了裝飾模式的實(shí)現(xiàn)。項(xiàng)目11講解JDBC編程,安裝了MySQL,詳細(xì)講解了JDBC開(kāi)發(fā)過(guò)程。項(xiàng)目12講解反射的相關(guān)知識(shí)。反射是Java的高級(jí)特性,掌握反射的本質(zhì)和應(yīng)用,有助于將來(lái)的框架學(xué)習(xí)。項(xiàng)目13給出了一個(gè)簡(jiǎn)單的Java Web程序開(kāi)發(fā)示例,幫助讀者理解Java在服務(wù)器端的開(kāi)發(fā)應(yīng)用。本書(shū)由文華學(xué)院林愛(ài)武、南通理工學(xué)院宋偉、哈爾濱遠(yuǎn)東理工學(xué)院齊晶薇擔(dān)任主編;由文華學(xué)院張采芳、張翼、仇亞萍、田笛擔(dān)任副主編;南通理工學(xué)院孫溢洋、崔慶華參編。全書(shū)由文華學(xué)院林愛(ài)武審核并統(tǒng)稿。 由于編者水平有限,加之時(shí)間比較倉(cāng)促,書(shū)中難免有疏漏和不妥之處,懇請(qǐng)廣大讀者朋友批評(píng)指正。
項(xiàng)目1Java語(yǔ)言簡(jiǎn)介及開(kāi)發(fā)環(huán)境
1.1Java語(yǔ)言簡(jiǎn)介/1
1.1.1Java語(yǔ)言特點(diǎn)/1
1.1.2Java技術(shù)平臺(tái)/3
1.2JDK的使用/3
1.2.1JDK的安裝/3
1.2.2JDK目錄說(shuō)明/5
1.2.3JDK、JRE 和JVM的關(guān)系/7
1.2.4Windows命令行窗口操作/7
1.2.5系統(tǒng)環(huán)境變量設(shè)置/9
1.2.6個(gè)Java程序/11
1.3Java集成開(kāi)發(fā)環(huán)境/13
1.3.1 Eclipse的安裝與配置/13
1.3.2利用Eclipse進(jìn)行程序開(kāi)發(fā)/16
1.3.3項(xiàng)目的刪除與導(dǎo)入/22
1.3.4Eclipse快捷鍵的使用/23
項(xiàng)目2Java語(yǔ)言基礎(chǔ)
2.1Java注釋/25
2.2關(guān)鍵字/26
2.3標(biāo)識(shí)符/26
2.4數(shù)據(jù)類(lèi)型/27
2.4.1數(shù)據(jù)類(lèi)型概述/27
2.4.2基本數(shù)據(jù)類(lèi)型/28
2.4.3數(shù)據(jù)的類(lèi)型轉(zhuǎn)換/33
2.4.4引用數(shù)據(jù)類(lèi)型/35
2.4.5數(shù)組/35
2.5JVM內(nèi)存劃分/41
2.6運(yùn)算符/43
2.6.1算術(shù)運(yùn)算符/43
2.6.2賦值運(yùn)算符/44
2.6.3比較運(yùn)算符/44
2.6.4邏輯運(yùn)算符/44
2.6.5條件運(yùn)算符/45
2.6.6位運(yùn)算符/45
2.6.7運(yùn)算符的優(yōu)先級(jí)和結(jié)合性/46
2.7流程控制語(yǔ)句/46
2.7.1選擇結(jié)構(gòu)語(yǔ)句/47
2.7.2循環(huán)結(jié)構(gòu)語(yǔ)句/51
2.8方法/55
2.8.1方法的定義/55
2.8.2方法的調(diào)用/56
2.8.3方法的重載/57
2.8.4方法的遞歸調(diào)用/58
2.9變量的作用域/60
項(xiàng)目3對(duì)象和類(lèi)
3.1類(lèi)的抽象/62
3.1.1面向?qū)ο蟾攀?62
3.1.2類(lèi)的定義/63
3.2對(duì)象的創(chuàng)建和訪問(wèn)/65
3.2.1構(gòu)造方法/65
3.2.2創(chuàng)建對(duì)象/66
3.2.3訪問(wèn)對(duì)象/68
3.2.4this引用的使用/69
3.2.5static關(guān)鍵字的使用/73
3.2.6方法中對(duì)象參數(shù)的傳遞/75
3.2.7匿名對(duì)象/76
3.3類(lèi)的封裝/77
3.4類(lèi)的訪問(wèn)控制/79
3.5單例模式/80
3.6生成幫助文檔/83
項(xiàng)目4類(lèi)的繼承
4.1繼承的含義/87
4.2super關(guān)鍵字的使用/89
4.2.1子類(lèi)調(diào)用父類(lèi)構(gòu)造方法/89
4.2.2子類(lèi)訪問(wèn)父類(lèi)成員/92
4.3final關(guān)鍵字的使用/93
4.4Object類(lèi)/95
4.5多態(tài)性/98
4.5.1多態(tài)的含義/98
4.5.2參數(shù)傳遞中多態(tài)性的應(yīng)用/100
4.6抽象類(lèi)/101
4.7接口/102
4.7.1接口聲明與實(shí)現(xiàn)/102
4.7.2接口的多態(tài)/104
4.7.3接口回調(diào)/106
4.7.4Comparable接口/107
4.8匿名內(nèi)部類(lèi)/109
4.9簡(jiǎn)單工廠模式/111
項(xiàng)目5異常機(jī)制
5.1異常的含義/114
5.2異常處理/116
5.2.1捕獲異常/116
5.2.2拋出異常/118
5.3自定義異常/120
5.4運(yùn)行時(shí)異常/121
項(xiàng)目6多線程技術(shù)
6.1基本概念/125
6.2創(chuàng)建線程/126
6.2.1繼承Thread類(lèi)創(chuàng)建多線程/126
6.2.2實(shí)現(xiàn)Runnable接口創(chuàng)建多線程/128
6.2.3用戶線程和守護(hù)線程/129
6.3線程的狀態(tài)及調(diào)度/130
6.3.1線程調(diào)度/130
6.3.2線程狀態(tài)/131
6.4線程的同步/134
6.4.1同步問(wèn)題的提出/134
6.4.2線程同步的實(shí)現(xiàn)/136
6.4.3死鎖問(wèn)題/140
6.5線程間合作/141
6.5.1線程間通信/141
6.5.2生產(chǎn)者和消費(fèi)者模型/142
6.6線程池/145
6.6.1線程池的使用/146
6.6.2線程池的生命周期/147
6.7定時(shí)任務(wù)調(diào)度/148
6.8匿名內(nèi)部類(lèi)實(shí)現(xiàn)多線程/149
項(xiàng)目7包裝類(lèi)、字符串相關(guān)類(lèi)和System類(lèi)
7.1包裝類(lèi)/152
7.1.1包裝類(lèi)概述/152
7.1.2基本數(shù)據(jù)類(lèi)型與包裝類(lèi)之間的轉(zhuǎn)換/153
7.1.3基本數(shù)據(jù)類(lèi)型與String類(lèi)型之間的轉(zhuǎn)換/154
7.2字符串相關(guān)類(lèi)/154
7.2.1String類(lèi)概述/155
7.2.2String類(lèi)常用方法/155
7.2.3正則表達(dá)式/157
7.2.4StringBuffer類(lèi)和StringBuilder類(lèi)/160
7.3System類(lèi)/162
項(xiàng)目8時(shí)間處理、隨機(jī)數(shù)和Math類(lèi)
8.1時(shí)間處理相關(guān)類(lèi)/165
8.1.1Date類(lèi)/165
8.1.2DateFormat類(lèi)和SimpleDateFormat類(lèi)/166
8.1.3Calendar類(lèi)/168
8.2Random類(lèi)/170
8.3Math類(lèi)/173
項(xiàng)目9集合類(lèi)
9.1集合概述/175
9.2單列集合/175
9.2.1Collection接口/175
9.2.2Iterator接口/176
9.2.3List接口/177
9.2.4ArrayList類(lèi)/177
9.2.5LinkedList類(lèi)/180
9.2.6Set接口/180
9.2.7HashSet類(lèi)/180
9.3雙列集合/182
9.3.1Map接口/182
9.3.2Map.Entry接口/182
9.3.3HashMap類(lèi)/183
9.3.4Properties類(lèi)/194
項(xiàng)目10File類(lèi)和輸入輸出流
10.1File類(lèi)概述/199
10.2遍歷目錄/202
10.2.1列出當(dāng)前目錄下的目錄和文件/202
10.2.2遞歸遍歷指定目錄下所有文件/204
10.3刪除目錄/205
10.4IO流概述/206
10.5字節(jié)流/207
10.5.1字節(jié)流概述/207
10.5.2FileInputStream類(lèi)和FileOutputStream類(lèi)/209
10.5.3BufferedInputStream類(lèi)和BufferedOutputStream類(lèi)/213
10.5.4ObjectOutputStream類(lèi)和ObjectInputStream類(lèi)/213
10.6字符流/217
10.6.1字符流概述/217
10.6.2FileReader類(lèi)和FileWriter類(lèi)/218
10.6.3BufferedReader類(lèi)和BufferedWriter類(lèi)/221
10.6.4InputStreamReader類(lèi)和OutputStreamWriter類(lèi)/224
10.7裝飾模式/225
項(xiàng)目11JDBC編程
11.1數(shù)據(jù)庫(kù)概述/228
11.1.1MySQL簡(jiǎn)介/228
11.1.2安裝MySQL/228
11.1.3卸載MySQL/232
11.1.4創(chuàng)建測(cè)試數(shù)據(jù)庫(kù)和表/233
11.2什么是JDBC/234
11.3JDBC常用API/235
11.4編寫(xiě)JDBC程序/239
11.4.1導(dǎo)入驅(qū)動(dòng)程序JAR包/239
11.4.2通過(guò)JDBC連接數(shù)據(jù)庫(kù)/239
11.4.3通過(guò)JDBC向數(shù)據(jù)庫(kù)增加數(shù)據(jù)/241
11.4.4通過(guò)JDBC向數(shù)據(jù)庫(kù)查詢數(shù)據(jù)/243
11.4.5通過(guò)JDBC向數(shù)據(jù)庫(kù)修改數(shù)據(jù)/248
11.4.6通過(guò)JDBC向數(shù)據(jù)庫(kù)刪除數(shù)據(jù)/249
11.4.7JDBC事務(wù)處理/250
11.5數(shù)據(jù)庫(kù)連接池C3P0/252
11.5.1javax.sql.DataSource接口/252
11.5.2C3P0數(shù)據(jù)源/252
項(xiàng)目12反射
12.1反射機(jī)制的含義/256
12.2獲取Class對(duì)象的三種方式/256
12.3反射機(jī)制的常見(jiàn)操作/259
12.3.1利用反射構(gòu)造對(duì)象(Constructor類(lèi))/259
12.3.2利用反射操作屬性(Field類(lèi))/260
12.3.3利用反射操作方法(Method類(lèi))/262
12.4代理模式/263
12.4.1靜態(tài)代理/264
12.4.2動(dòng)態(tài)代理/266
項(xiàng)目13Java Web程序開(kāi)發(fā)示例
13.1Web程序開(kāi)發(fā)概述/269
13.1.1軟件體系架構(gòu)C/S和B/S/269
13.1.2靜態(tài)Web頁(yè)面和動(dòng)態(tài)Web頁(yè)面/269
13.2Eclipse環(huán)境下配置Tomcat服務(wù)器/270
13.2.1安裝Tomcat服務(wù)器/270
13.2.2Eclipse中配置Tomcat/271
13.3利用Eclipse開(kāi)發(fā)個(gè)Web項(xiàng)目/275
13.3.1新建Web項(xiàng)目/276
13.3.2實(shí)體層/277
13.3.3表現(xiàn)層/277
13.3.4控制層/280
13.3.5業(yè)務(wù)層/284
13.3.6持久層/284
13.3.7部署Web項(xiàng)目/285
13.3.8測(cè)試Web項(xiàng)目/286
參考文獻(xiàn)