Java程序設(shè)計(第2版)/21世紀(jì)大學(xué)本科計算機(jī)專業(yè)系列教材
定 價:49 元
叢書名:21世紀(jì)大學(xué)本科計算機(jī)專業(yè)系列教材
- 作者:朱慶生,古平 著
- 出版時間:2016/11/1
- ISBN:9787302454786
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP312.8
- 頁碼:408
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書在內(nèi)容組織和編寫中充分融入了作者在承擔(dān)“Java程序設(shè)計”國家精品課程和國家精品資源共享課程建設(shè)和教改中的成果,更加契合高等學(xué)校課程教學(xué)模式和學(xué)生漸進(jìn)式學(xué)習(xí)的特點。遵循學(xué)生學(xué)習(xí)的認(rèn)知過程和規(guī)律,以“興趣為先、任務(wù)驅(qū)動、學(xué)以致用”的理念為指導(dǎo)思想,每個章節(jié)編寫均采用WWH教學(xué)方式,即通過“理解知識概念(What)、把握原理和規(guī)律(Why)、掌握實現(xiàn)技巧(How)”,有機(jī)地將知識、理論融入到編程實踐中。
本書在知識表達(dá)形式上改變了傳統(tǒng)教材對知識平鋪直敘的描述方式,而是將大量知識點融入到代碼實例中進(jìn)行講解,由淺入深,通過對核心知識的實例化來提高學(xué)生的編程興趣,讓學(xué)生既知道需要學(xué)什么,又懂得如何學(xué)以致用。與其他Java教材相比,本書在重要知識點和案例選擇中均針對實際問題需求,從軟件開發(fā)者的視角進(jìn)行講解與分析,各知識點中均凝聚了作者在Java應(yīng)用開發(fā)中的實際經(jīng)驗和教研成果,體現(xiàn)了知識的實用性。在注重基本知識的同時,將案例解決方法、過程和原理融入其中,提升學(xué)生分析問題和實際編程的能力。
本書可作為高等學(xué)校計算機(jī)及相關(guān)專業(yè)本科生“Java程序設(shè)計”課程的教材,也可作為需要運用Java語言開發(fā)應(yīng)用的軟件人員的自學(xué)參考書。
主任: 李曉明副主任: 蔣宗禮盧先和委員: (按姓氏筆畫為序)
馬華東馬殿富王志英王曉東寧洪
劉辰孫茂松李仁發(fā)李文新楊波
吳朝暉何炎祥宋方敏張莉金海
周興社孟祥旭袁曉潔錢樂秋黃國興
曾明廖明宏秘書: 張瑞慶
本書主審: 李曉明
第2版前言FOREWORDJava語言是由Sun公司推出的面向?qū)ο蟪绦蛟O(shè)計語言,它的平臺無關(guān)性特點非常適于網(wǎng)絡(luò)應(yīng)用,因而備受青睞。由于Java的體系和內(nèi)容非常龐大,如何幫助初學(xué)者建立一個完整的知識體系,如何引導(dǎo)讀者將Java的理論、實踐和編程技能融為一體,是本書重點考慮的問題。
本書是網(wǎng)絡(luò)教育國家精品課程和國家精品資源共享課程“Java程序設(shè)計”的配套教程,適合作為高等學(xué);蚓W(wǎng)絡(luò)教育Java課程的教材。
本書第1版出版5年多來,受到全國廣大師生的好評,已7次印刷發(fā)行。教材第2版根據(jù)教育部高等學(xué)校計算機(jī)類專業(yè)教學(xué)指導(dǎo)委員會關(guān)于提升學(xué)生編程實踐能力的精神,在總結(jié)課程教學(xué)改革經(jīng)驗基礎(chǔ)上并結(jié)合對第1版教材的反饋意見修訂而成。全書組織架構(gòu)與第1版保持不變,內(nèi)容由淺入深地分為4篇: “基礎(chǔ)篇”(第1~6章)介紹面向?qū)ο蟪绦蛟O(shè)計的基本思想和Java核心語法;“提高篇”(第7~10章)講述如何利用Java編程接口提升程序的實用性、可靠性和界面友好性;“網(wǎng)絡(luò)篇”(第11~14章)在介紹網(wǎng)絡(luò)通信知識基礎(chǔ)上,講述如何應(yīng)用Java語言實現(xiàn)桌面應(yīng)用和Web應(yīng)用;“實例篇”(第15章)通過具體案例展示Java應(yīng)用程序的設(shè)計過程、編程思路和技術(shù),為項目實戰(zhàn)積累編程經(jīng)驗。
第2版主要修改包括:
。1) 根據(jù)JDK 8版的新特性進(jìn)行了版本更新,并增加了若干相關(guān)知識點,具體內(nèi)容有: 第1章增加了Eclipse安裝使用,同時刪除原附錄A;第3章增加了數(shù)組類Arrays;第5章增加了內(nèi)部類、泛型、閉包、反射機(jī)制和注解技術(shù)等;第6章增加了正則表達(dá)式、Runtime類、自動裝箱和拆箱技術(shù)等;第9章增加了線程池、多線程互斥與同步等;第10章弱化Applet,同時增強(qiáng)了Swing中的高級組件;第11章增加了多播通信技術(shù);第14章增加了數(shù)據(jù)庫事務(wù)管理等內(nèi)容。
。2) 進(jìn)一步豐富了導(dǎo)入案例、知識點案例和各章的綜合案例,增加了一系列面向小節(jié)知識的實用小案例,力圖通過解決模擬問題,培養(yǎng)學(xué)生思維能力,激發(fā)學(xué)生編程興趣。
(3) 提供了與本書配套的、完整的案例源碼,便于學(xué)生課后自我練習(xí)。
全書由朱慶生、古平、劉驥、葛亮、楊瑞龍編寫。其中,朱慶生教授負(fù)責(zé)全書體系構(gòu)思、編寫框架、內(nèi)容選擇和編寫指導(dǎo)等,并對全書進(jìn)行審定和修改。第3、4、5、11章由古平副教授編寫,第1、7、12、14章由葛亮副教授編寫,第10、13、15章由劉驥老師編寫,第2、6、8、9章由楊瑞龍老師編寫。
本次修訂,錯誤或遺漏之處在所難免,懇請批評指正。
作者
2016年9月第1版前言FOREWORDJava語言是由Sun公司推出的面向?qū)ο蟪绦蛟O(shè)計語言,它的平臺無關(guān)性特點非常適于網(wǎng)絡(luò)應(yīng)用,因而備受青睞。Java語言正逐步成為全世界程序員使用最多的編程語言,并在桌面應(yīng)用、Web應(yīng)用、分布式應(yīng)用、嵌入式應(yīng)用系統(tǒng)中發(fā)揮著重要作用。
對于初學(xué)Java程序設(shè)計語言的人來說,Java的體系和內(nèi)容顯得非常復(fù)雜。如何幫助他們建立一個完整的知識體系,以及如何引導(dǎo)他們將Java的理論、實踐和技能融為一體,是本書重點考慮的問題。
本書是在國家精品課程“Java程序設(shè)計”(網(wǎng)絡(luò))和教育部IBM精品課程“Java并發(fā)編程實踐”的建設(shè)和實踐教學(xué)中總結(jié)出來的實用教材,面向全國高校計算機(jī)及其相關(guān)專業(yè)本科生,也可供Java自學(xué)人員、軟件開發(fā)人員參考使用。
全書內(nèi)容由淺入深分為4篇。第一篇為基礎(chǔ)篇(第1~6章),側(cè)重介紹面向?qū)ο蟪绦蛟O(shè)計的基本思想和Java核心語法,包括Java運行環(huán)境、程序設(shè)計基礎(chǔ)、數(shù)組、類和對象、繼承與多態(tài)、Java標(biāo)準(zhǔn)類庫等。通過這一部分的學(xué)習(xí),讀者能夠掌握J(rèn)ava程序設(shè)計的基本方法,并能設(shè)計簡單的Java程序。
第二篇為提高篇(第7~10章),講述如何利用Java開放的編程接口提升程序的實用性、可靠性和界面友好性,包括Java的異常處理機(jī)制、輸入輸出處理、多線程、圖形界面設(shè)計、Applet等。通過這一部分的學(xué)習(xí),讀者可以開發(fā)功能更復(fù)雜、界面更友好的實用Java應(yīng)用系統(tǒng)。
第三篇為網(wǎng)絡(luò)篇(第11~14章),介紹網(wǎng)絡(luò)通信的基礎(chǔ)知識,以及Java對桌面網(wǎng)絡(luò)應(yīng)用和Web應(yīng)用的支持與實現(xiàn),內(nèi)容包括URL與Socket通信技術(shù)、Web編程技術(shù)、JDBC技術(shù),以及上述技術(shù)在Tomcat與Eclipse開發(fā)平臺中的具體實現(xiàn)。這是Java在網(wǎng)絡(luò)通信、Web服務(wù)中應(yīng)用的關(guān)鍵技術(shù)。
第四篇為實例篇(第15章),通過兩個實用案例,分別展示Java桌面應(yīng)用和Web應(yīng)用程序的設(shè)計過程、思路和關(guān)鍵技術(shù),是前3篇知識的綜合應(yīng)用,也為項目實戰(zhàn)積累開發(fā)經(jīng)驗。
本書在編寫上具有以下特點:
。1) 注重知識點之間的相互銜接。本書在章節(jié)安排上考慮了知識點之間的依賴關(guān)系,分析時層層推進(jìn),注重知識點之間的環(huán)環(huán)相扣。
。2) 采用Why—What—How的編寫模式。本書采用“為什么學(xué)→學(xué)什么→如何學(xué)”的教學(xué)思路進(jìn)行內(nèi)容組織,每章首先通過“本章學(xué)習(xí)目標(biāo)”讓讀者明確為什么學(xué),其次通過具體案例引出需要學(xué)什么,然后從問題求解過程中逐步引出關(guān)鍵知識點,使讀者知道該如何學(xué),能夠輕松、快速掌握J(rèn)ava語言的基本知識體系和編程技巧。
。3) 案例層次化。在章節(jié)進(jìn)入時有導(dǎo)入案例,主要知識點有印證案例,模擬練習(xí)時有實訓(xùn)案例,所有案例均配有詳細(xì)的代碼解釋和分析。導(dǎo)入案例→印證案例→實訓(xùn)案例,實踐→理論→再實踐,理論知識與實際應(yīng)用緊密結(jié)合。
本書由朱慶生、古平、劉驥、葛亮、楊瑞龍編寫。其中,朱慶生教授負(fù)責(zé)全書體系構(gòu)思、框架制定、內(nèi)容選擇、編寫指導(dǎo)等,并對全書各章進(jìn)行了審查和修改;第3、4、5、10(部分)、11章由古平編寫;第1、7、12、14章由葛亮編寫;第10(部分)、13、15章和附錄由劉驥編寫;第2、6、8、9章由楊瑞龍編寫。
書中難免有遺漏和不足之處,懇請業(yè)界同仁及讀者朋友提出寶貴意見,以便在修訂時進(jìn)一步完善。
Java程序設(shè)計(第2版)編者
2011年1月
第一篇基礎(chǔ)篇
第1章Java概述3
本章學(xué)習(xí)目標(biāo)3
1.1認(rèn)識Java語言3
1.1.1Java語言的特點4
1.1.2Java平臺的體系結(jié)構(gòu)4
1.2Java運行環(huán)境與開發(fā)環(huán)境5
1.2.1Java運行環(huán)境6
1.2.2安裝6
1.2.3安裝Eclipse開發(fā)工具6
1.3Java程序舉例8
1.3.1用Eclipse編寫第一個Java Application8
1.3.2用Eclipse編寫帶命令行參數(shù)的應(yīng)用程序13
習(xí)題與思考15
第2章Java程序設(shè)計基礎(chǔ)16
本章學(xué)習(xí)目標(biāo)16
2.1標(biāo)識符和關(guān)鍵字16
2.1.1如何定義標(biāo)識符16
2.1.2關(guān)鍵字17
2.1.3注釋17
2.2常量和變量18
2.2.1常量18
2.2.2變量18
2.3基本數(shù)據(jù)類型19
2.3.1布爾類型19
2.3.2字符類型20Java程序設(shè)計(第2版)目錄2.3.3整數(shù)類型21
2.3.4浮點類型21
2.3.5各類型數(shù)據(jù)間的相互轉(zhuǎn)換22
2.4運算符23
2.4.1算術(shù)運算符23
2.4.2賦值運算符25
2.4.3條件運算符26
2.4.4位運算符26
2.4.5關(guān)系運算符28
2.4.6邏輯運算符28
2.5表達(dá)式29
2.6程序控制語句30
2.6.1if語句30
2.6.2switch語句31
2.6.3while與dowhile語句33
2.6.4for語句34
2.6.5break語句36
2.6.6continue語句38
2.6.7return語句39
2.6.8實用案例40
2.7實訓(xùn)任務(wù)41
習(xí)題與思考42
第3章數(shù)組44
本章學(xué)習(xí)目標(biāo)44
3.1數(shù)組使用初探44
3.2一維數(shù)組45
3.2.1定義數(shù)組45
3.2.2生成數(shù)組45
3.2.3初始化數(shù)組46
3.2.4訪問數(shù)組46
3.2.5實用案例47
3.3二維數(shù)組47
3.3.1定義二維數(shù)組48
3.3.2二維數(shù)組元素的引用48
3.3.3實用案例49
3.4Arrays類50
3.4.1Arrays類及基本使用50
3.4.2實用案例52
3.5數(shù)組實訓(xùn)任務(wù)53
習(xí)題與思考54
第4章類和對象設(shè)計56
本章學(xué)習(xí)目標(biāo)56
4.1面向?qū)ο蠡A(chǔ)56
4.2類和對象初探58
4.3定義類59
4.3.1定義成員變量59
4.3.2定義成員方法60
4.3.3方法重載61
4.4對象62
4.4.1實例化對象62
4.4.2初始化對象62
4.4.3使用對象64
4.4.4使用靜態(tài)變量和方法66
4.4.5清除對象68
4.4.6應(yīng)用程序與命令行參數(shù)68
4.4.7實用案例70
4.5包71
4.5.1包的定義71
4.5.2包的引入72
4.6類及成員修飾符73
4.6.1public73
4.6.2protected74
4.6.3private75
4.6.4final76
4.6.5實用案例77
4.7類和對象實訓(xùn)任務(wù)78
習(xí)題與思考83
第5章繼承與多態(tài)84
本章學(xué)習(xí)目標(biāo)84
5.1繼承使用初探84
5.2類的繼承85
5.2.1繼承的實現(xiàn)85
5.2.2繼承與重寫87
5.2.3繼承與類型轉(zhuǎn)換90
5.2.4實用案例91
5.3多態(tài)性92
5.3.1多態(tài)性的概念92
5.3.2實用案例94
5.4抽象類與抽象方法95
5.4.1定義抽象類及實現(xiàn)抽象方法95
5.4.2實用案例95
5.5接口97
5.5.1接口定義97
5.5.2接口實現(xiàn)97
5.5.3實用案例99
5.6內(nèi)部類100
5.6.1成員內(nèi)部類101
5.6.2局部內(nèi)部類101
5.6.3靜態(tài)內(nèi)部類(嵌套類)101
5.6.4匿名內(nèi)部類102
5.6.5實用案例102
5.7Java類的高級特性104
5.7.1泛型104
5.7.2Java類加載機(jī)制107
5.7.3Java反射機(jī)制108
5.7.4實用案例114
5.7.5Java注解120
5.8繼承與多態(tài)實訓(xùn)任務(wù)123
習(xí)題與思考125
第6章Java標(biāo)準(zhǔn)類庫128
本章學(xué)習(xí)目標(biāo)128
6.1Java標(biāo)準(zhǔn)類庫簡介128
6.2字符串String類和StringBuffer類129
6.2.1String類129
6.2.2StringBuffer類134
6.2.3正則表達(dá)式136
6.2.4實用案例139
6.3數(shù)據(jù)類型包裝器類139
6.3.1整型包裝器類140
6.3.2實用案例141
6.4System類和Runtime類142
6.4.1記錄程序執(zhí)行的時間142
6.4.2復(fù)制數(shù)組143
6.4.3內(nèi)存管理143
6.4.4實用案例144
6.5Math類和Random類145
6.5.1Math類145
6.5.2Random類146
6.5.3實用案例147
6.6日期時間實用工具類148
6.6.1Date(日期)148
6.6.2Calendar(日歷)149
6.6.3實用案例151
6.7Java集合類152
6.7.1集合接口152
6.7.2實現(xiàn)List接口的類154
6.7.3實現(xiàn)Set接口的類156
6.7.4通過迭代接口訪問集合類158
6.7.5映射接口160
6.7.6實現(xiàn)Map接口的類162
6.8標(biāo)準(zhǔn)類實訓(xùn)任務(wù)165
習(xí)題與思考167
第二篇提高篇
第7章異常處理171
本章學(xué)習(xí)目標(biāo)171
7.1為什么需要異常處理171
7.2異常概述174
7.2.1什么是異常174
7.2.2異常處理帶來的好處175
7.3異常處理機(jī)制177
7.3.1Java的異常處理機(jī)制177
7.3.2異常類的類層次178
7.3.3異常的處理179
7.3.4實用案例182
7.4自定義異常類184
7.5異常處理實訓(xùn)任務(wù)186
習(xí)題與思考187
第8章輸入輸出處理188
本章學(xué)習(xí)目標(biāo)188
8.1流的作用188
8.2流的劃分189
8.3標(biāo)準(zhǔn)輸入輸出流191
8.3.1標(biāo)準(zhǔn)輸入191
8.3.2Scanner類封裝標(biāo)準(zhǔn)輸入流192
8.3.3標(biāo)準(zhǔn)輸出193
8.3.4實用案例193
8.4字節(jié)流使用194
8.4.1File類194
8.4.2文件字節(jié)流199
8.4.3字節(jié)過濾流201
8.4.4實用案例203
8.5字符流使用205
8.5.1文件字符流205
8.5.2字節(jié)流向字符流的轉(zhuǎn)化206
8.5.3Scanner封裝字符流208
8.5.4實用案例210
8.6串行化211
8.6.1串行化的概念211
8.6.2實用案例212
8.7輸入輸出處理實訓(xùn)任務(wù)213
習(xí)題與思考217
第9章Java多線程218
本章學(xué)習(xí)目標(biāo)218
9.1為什么使用多線程218
9.2線程的概念219
9.3線程的創(chuàng)建220
9.3.1采用繼承創(chuàng)建線程220
9.3.2通過實現(xiàn)接口創(chuàng)建線程222
9.3.3實用案例223
9.4線程的生命周期及調(diào)度224
9.4.1線程生命周期224
9.4.2線程調(diào)度和優(yōu)先級226
9.4.3線程的終止227
9.4.4實用案例229
9.5多線程互斥與同步230
9.5.1線程的互斥230
9.5.2線程的同步234
9.5.3實用案例236
9.6多線程實訓(xùn)任務(wù)238
習(xí)題與思考242
第10章GUI程序設(shè)計244
本章學(xué)習(xí)目標(biāo)244
10.1為什么學(xué)習(xí)GUI程序設(shè)計244
10.2基于Swing的簡單界面設(shè)計245
10.2.1Swing簡介245
10.2.2Swing的類層次結(jié)構(gòu)246
10.2.3常見GUI組件247
10.2.4基于AWT的GUI程序249
10.3界面布局251
10.3.1無布局管理器布局251
10.3.2FlowLayout253
10.3.3BorderLayout254
10.3.4GridLayout255
10.3.5利用可視化工具進(jìn)行布局256
10.3.6實用案例259
10.4響應(yīng)用戶事件261
10.4.1事件處理的基本過程261
10.4.2常用事件與事件監(jiān)聽器類263
10.4.3鍵盤與鼠標(biāo)事件265
10.4.4實用案例268
10.5高級組件JTree和JTable270
10.5.1JTree組件270
10.5.2JTable組件274
10.5.3實用案例277
10.6GUI程序設(shè)計實訓(xùn)任務(wù)279
習(xí)題與思考285
第三篇網(wǎng)絡(luò)篇
第11章網(wǎng)絡(luò)通信289
本章學(xué)習(xí)目標(biāo)289
11.1類URL與URLConnection289
11.2類InetAddress294
11.3Socket通信296
11.3.1基于TCP協(xié)議的Socket通信296
11.3.2實用案例298
11.3.3基于UDP的網(wǎng)絡(luò)通信302
11.3.4實用案例303
11.3.5基于MulticastSocket實現(xiàn)多點廣播306
11.4網(wǎng)絡(luò)通信實訓(xùn)任務(wù)308
習(xí)題與思考309
第12章JSP與Servlet技術(shù)310
本章學(xué)習(xí)目標(biāo)310
12.1為什么使用JSP310
12.2JSP技術(shù)312
12.2.1JSP工作原理312
12.2.2JSP的構(gòu)成314
12.2.3JSP內(nèi)建對象317
12.2.4實用案例322
12.3Servlet技術(shù)324
12.3.1Servlet介紹324
12.3.2Servlet常用接口的使用325
12.3.3使用HttpServlet處理客戶端請求329
12.3.4獲得Servlet初始化參數(shù)332
12.3.5實用案例334
12.4JSP和Servlet結(jié)合的方法336
12.4.1模式一: JSP+JavaBean336
12.4.2模式二: JSP+Servlet+JavaBean336
12.4.3JSP和Servlet的選擇337
12.4.4實用案例337
12.5JSP與Servlet開發(fā)實訓(xùn)任務(wù)339
習(xí)題與思考342
第13章用Tomcat構(gòu)建Web站點343
本章學(xué)習(xí)目標(biāo)343
13.1Tomcat簡介343
13.2安裝配置Tomcat344
13.3編寫簡單的Web站點345
13.3.1配置服務(wù)器運行環(huán)境345
13.3.2新建動態(tài)Web工程346
13.3.3Web工程的結(jié)構(gòu)347
13.3.4新建Servlet和JSP程序347
13.4運行Web站點351
13.5發(fā)布Web站點352
習(xí)題與思考353
第14章JDBC技術(shù)354
本章學(xué)習(xí)目標(biāo)354
14.1為什么需要JDBC354
14.2數(shù)據(jù)庫和常用的SQL語句356
14.3JDBC的結(jié)構(gòu)358
14.4通過JDBC訪問數(shù)據(jù)庫359
14.4.1加載JDBC驅(qū)動程序359
14.4.2建立連接359
14.4.3執(zhí)行SQL語句360
14.4.4檢索結(jié)果360
14.4.5關(guān)閉連接361
14.4.6實用案例361
14.4.7事務(wù)處理365
14.4.8實用案例366
14.5JDBC實訓(xùn)任務(wù)370
習(xí)題與思考376
第四篇實例篇
第15章Java應(yīng)用開發(fā)案例379
本章學(xué)習(xí)目標(biāo)379
15.1基于Web的簡單學(xué)生信息管理系統(tǒng)379
15.1.1程序的基本結(jié)構(gòu)379
15.1.2數(shù)據(jù)庫操作的實現(xiàn)381
15.1.3處理Web請求386
15.1.4Web頁面388
15.2推箱子游戲398
15.2.1程序的基本結(jié)構(gòu)398
15.2.2游戲地圖設(shè)計398
15.2.3程序邏輯399
15.2.4繪制游戲界面404
15.2.5游戲窗體406
參考文獻(xiàn)409