本書系統(tǒng)地介紹了 Java 語言高級程序設(shè)計內(nèi)容,主要包括 Java 集合框架、異常處理、輸入/輸出流、多線程、網(wǎng)絡編程、圖形用戶界面程序設(shè)計、泛型、JDBC 編程、Java 8 新特性。本書所有知識點都結(jié)合具體實例進行分析,既注重理論介紹,又強調(diào)實際應用,從實用的角度精心設(shè)計知識結(jié)構(gòu)和代碼示例,同時每章后面配有相應習題。
本書可作為普通高等院校計算機及相關(guān)專業(yè) Java 程序設(shè)計課程的教材,也適合程序開發(fā)人員學習使用。
1.本書以案例教學為引導,深入淺出,圖文并茂,方便讀者快速上手,著重培養(yǎng)讀者的動手能力。
2.本書使用Java SE 8.0,反映了Java和軟件技術(shù)的新進展。
3.本書配備了豐富的教學資源,包括教學課件、教學視頻、教學大綱、習題答案和源代碼。
周化祥,男,中共黨員,中南大學計算機應用技術(shù)專業(yè)碩士研究生,副教授,曾任長沙商貿(mào)旅游職業(yè)技術(shù)學院網(wǎng)絡教研室主任、軟件教研室主任、軟件專業(yè)帶頭人、信息技術(shù)系副主任、成教培訓部主任、繼續(xù)教育與國際學院院長,現(xiàn)任軟件學院院長,是國家人社部職業(yè)技能鑒定中心的計算機網(wǎng)絡工程師考評員、網(wǎng)頁制作FLASH平臺考評員。
許金元,男,副教授,曾擔任學校教研室主任、繼續(xù)教育學院院長,現(xiàn)擔任信息工程學院(二級學院)院長。湖南省人工智能學會高職AI教育專業(yè)委員會委員,谷歌高職開源技術(shù)區(qū)域聯(lián)盟(華中)副秘書長。近3年發(fā)近10篇各級論文,主持省教育科學規(guī)劃課題1項,主要參與省社科基金思想政治教育課題1項,省教育廳科學研究項目1項。參與實用新型專利2項,申請發(fā)明專利3項。指學生參加2021年省職業(yè)院校高職組軟件測試賽項一等獎,2021年全國職業(yè)院校高職組軟件測試賽項一等。
黃毅,碩士,副教授,擔任過軟件技術(shù)專業(yè)教研室主任、二級學院教學副院長及黨總支書記等工作。近年來,教學質(zhì)量考核均為“優(yōu)秀”,2020年獲學校嘉獎;指導學生獲得2020年、2021年湖南省職業(yè)院校學生技能競賽軟件測試賽項二等獎。主持參與2門精品在線開放課程,主持參與多項省級課題,發(fā)表CSCD、EI等論文多篇。榮獲學校先進工作者、優(yōu)秀共產(chǎn)黨員等多項榮譽稱號。
李俊成,碩士研究生,副教授,曾先后在中國聯(lián)通、三一重工的研發(fā)部門參與ERP、SAP二次開發(fā)等項目開發(fā),在高校有著數(shù)十年的JAVA、JSP、JAVA EE等課程的教學經(jīng)驗。曾獲得2018年湖南省職業(yè)院校技能競賽教師職業(yè)能力比賽一等獎,曾獲得2020年湖南省職業(yè)院校技能競賽高職組移動互聯(lián)網(wǎng)應用軟件開發(fā)技能大賽(團體賽)優(yōu)秀指導教師,2013年至2021年指導學生參加職業(yè)院校技能競賽,獲得國家二等獎 2項、省級一等獎 4項、省級二等獎 6項、省級三等獎 7項。
劉思聰,男,現(xiàn)任江蘇經(jīng)貿(mào)職業(yè)技術(shù)學院 智能工程技術(shù)學院 專任教師,講師,研究方向為人工智能技術(shù)及應用,曾在國內(nèi)外多家刊物發(fā)表論文多篇,并多次受邀在國際學術(shù)會議上做主題演講。曾在蘇寧易購、中興通訊、中國電子科技集團有限公司下屬研究所內(nèi)擔任技術(shù)經(jīng)理、高級工程師等職位,并負責多個多個重大項目的研發(fā)工作。
目錄
第 1 章
集合框架
1.1 Java 語言中的集合類 1
1.1.1 集合概述 1
1.1.2 Java 集合框架的層次結(jié)構(gòu) 2
1.2 Collection 接口 3
1.3 Set 接口及其實現(xiàn)類 4
1.4 List 接口及其實現(xiàn)類 7
1.5 Iterator 接口 11
1.6 Map 接口及其實現(xiàn)類 15
1.7 本章小結(jié) 21
1.8 本章習題 21
第 2 章
異常處理 22
2.1 異常處理 22
2.1.1 異常的有關(guān)概念 22
2.1.2 異常處理機制 24
2.2 自定義異常類 27
2.3 本章小結(jié) 29
2.4 本章習題 29
第 3 章
輸入/輸出流 31
3.1 File 類 31
3.2 字節(jié)流和字符流 40
3.2.1 流的概念 40
3.2.2 InputStream 字節(jié)輸入流的層次結(jié)構(gòu)與常用方法 41
3.2.3 OutputStream 字節(jié)輸出流的層次結(jié)構(gòu)與常用方法 42
3.2.4 Reader 字符輸入流的層次結(jié)構(gòu)及主要方法 43
3.2.5 Writer 字符輸出流的層次結(jié)構(gòu)及主要方法 43
3.3 節(jié)點流與處理流的使用 44
3.3.1 節(jié)點流的概念 44
3.3.2 使用節(jié)點流訪問文件 45
3.3.3 處理流的概念 51
3.3.4 處理流類的使用 51
3.4 對象的序列化 59
3.4.1 對象序列化概述 59
3.4.2 支持序列化的接口和類 59
3.4.3 對象序列化的條件 67
3.4.4 transient 67
3.5 本章小結(jié) 68
3.6 本章習題 68
第 4 章
多線程 70
4.1 多線程簡介 70
4.2 多線程實現(xiàn)的兩種方式 73
4.2.1 繼承 Thread 類 73
4.2.2 實現(xiàn) Runnable 接口 76
4.2.3 兩種實現(xiàn)方式的比較 77
4.3 線程的屬性和控制 79
4.3.1 線程狀態(tài)及其生命周期 79
4.3.2 線程類的主要方法 80
4.3.3 線程優(yōu)先級 81
4.3.4 線程休眠和線程中斷 86
4.3.5 線程的高級操作 90
4.4 多線程的同步/通信問題 94
4.4.1 線程同步 94
4.4.2 鎖 100
4.4.3 死鎖 105
4.5 本章小結(jié) 106
4.6 本章習題 106
第 5 章
網(wǎng)絡編程 108
5.1 網(wǎng)絡基礎(chǔ)知識 108
5.1.1 網(wǎng)絡基礎(chǔ)知識概述 108
5.1.2 InetAddress 編程 111
5.1.3 URL 編程 112
5.1.4 TCP 與 UDP 113
5.2 Socket 編程 116
5.2.1 Socket 原理 116
5.2.2 基于 TCP 的 Socket 編程 117
5.2.3 基于多線程的 Socket 編程 122
5.3 本章小結(jié) 130
5.4 本章習題 130
第 6 章
圖形用戶界面程序設(shè)計 131
6.1 圖形用戶界面概述 131
6.2 構(gòu)造簡單的圖形界面 132
6.2.1 創(chuàng)建框架 132
6.2.2 添加組件 133
6.3 布局管理器 135
6.3.1 FlowLayout 布局管理器 135
6.3.2 BorderLayout 布局管理器 136
6.3.3 GridLayout 布局管理器 138
6.4 交互與事件處理 139
6.4.1 事件處理模型 139
6.4.2 動作事件處理 142
6.5 常用的 GUI 組件 144
6.5.1 標簽 144
6.5.2 按鈕 145
6.5.3 文本框 147
6.5.4 文本區(qū) 148
6.5.5 面板 150
6.5.6 單選按鈕 152
6.5.7 復選框 153
6.6 鼠標事件 155
6.7 鍵盤事件 157
6.8 本章小結(jié) 159
6.9 本章習題 159
第 7 章
泛 型 160
7.1 泛型的動機及 Java 語言集合中的泛型 160
7.1.1 泛型的動機 160
7.1.2 Java 語言集合中的泛型 161
7.2 泛型類 164
7.3 泛型接口 165
7.4 泛型通配符 167
7.5 泛型方法 170
7.6 本章小結(jié) 174
7.7 本章習題 174
第 8 章
JDBC 編程 176
8.1 JDBC 概述 176
8.1.1 什么是 JDBC 176
8.1.2 JDBC 的體系結(jié)構(gòu) 177
8.1.3 JDBC 核心接口與類 177
8.2 創(chuàng)建 JDBC 應用 177
8.2.1 創(chuàng)建 JDBC 應用程序的步驟 177
8.2.2 JDBC 中主要的類及常用方法 181
8.2.3 SQL 注入問題 187
8.3 PreparedStatement 接口 188
8.4 用 JDBC 連接不同的數(shù)據(jù)庫 194
8.5 本章小結(jié) 195
8.6 本章習題 195
第 9 章
Java 8 新特性 196
9.1 Lambda 表達式和函數(shù)式接口 196
9.2 方法引用 201
9.3 接口的默認方法和靜態(tài)方法 206
9.4 本章小結(jié) 208
9.5 本章習題 208