中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網(wǎng) 請 | 注冊

包郵 瘋狂Java講義

作者:李剛編著
出版社:電子工業(yè)出版社出版時間:2018-01-01
開本: 16開 頁數(shù): 896
中 圖 價:¥51.1(4.7折) 定價  ¥109.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
溫馨提示:5折以下圖書主要為出版社尾貨,大部分為全新(有塑封/無塑封),個別圖書品相8-9成新、切口
有劃線標(biāo)記、光盤等附件不全詳細(xì)品相說明>>
本類五星書更多>
買過本商品的人還買了

瘋狂Java講義 版權(quán)信息

瘋狂Java講義 本書特色

《瘋狂Java講義(第4版)》是《瘋狂Java講義》的第4版,第4版保持了前3版系統(tǒng)、全面、講解淺顯、細(xì)致的特性,全面新增介紹了Java 9的新特性。
《瘋狂Java講義(第4版)》深入介紹了Java編程的相關(guān)方面,《瘋狂Java講義(第4版)》內(nèi)容覆蓋了Java的基本語法結(jié)構(gòu)、Java的面向?qū)ο筇卣鳌ava集合框架體系、Java泛型、異常處理、Java GUI編程、JDBC數(shù)據(jù)庫編程、Java注釋、Java的IO流體系、Java多線程編程、Java網(wǎng)絡(luò)通信編程和Java反射機制。覆蓋了java.lang、java.util、java.text、java.io和java.nio、java.sql、java.awt、javax.swing包下絕大部分類和接口。本書重點介紹了Java 9的模塊化系統(tǒng),還詳細(xì)介紹了Java 9的jshell工具、多版本JAR包、匿名內(nèi)部類的菱形語法、增強的try語句、私有接口方法,以及Java 9新增的各種API功能。《瘋狂Java講義(第4版)》是《瘋狂Java講義》的第4版,第4版保持了前3版系統(tǒng)、全面、講解淺顯、細(xì)致的特性,全面新增介紹了Java 9的新特性。
《瘋狂Java講義(第4版)》深入介紹了Java編程的相關(guān)方面,《瘋狂Java講義(第4版)》內(nèi)容覆蓋了Java的基本語法結(jié)構(gòu)、Java的面向?qū)ο筇卣鳌ava集合框架體系、Java泛型、異常處理、Java GUI編程、JDBC數(shù)據(jù)庫編程、Java注釋、Java的IO流體系、Java多線程編程、Java網(wǎng)絡(luò)通信編程和Java反射機制。覆蓋了java.lang、java.util、java.text、java.io和java.nio、java.sql、java.awt、javax.swing包下絕大部分類和接口。本書重點介紹了Java 9的模塊化系統(tǒng),還詳細(xì)介紹了Java 9的jshell工具、多版本JAR包、匿名內(nèi)部類的菱形語法、增強的try語句、私有接口方法,以及Java 9新增的各種API功能。
與前3版類似,《瘋狂Java講義(第4版)》并不單純從知識角度來講解Java,而是從解決問題的角度來介紹Java語言,所以《瘋狂Java講義(第4版)》中涉及大量實用案例開發(fā):五子棋游戲、梭哈游戲、仿QQ的游戲大廳、MySQL企業(yè)管理器、仿EditPlus的文本編輯器、多線程、斷點下載工具、Spring框架的IoC容器……這些案例既能讓讀者鞏固每章的知識,又可以讓讀者學(xué)以致用,激發(fā)編程自豪感,進(jìn)而引爆內(nèi)心的編程激情。《瘋狂Java講義(第4版)》光盤里包含書中所有示例的代碼和《瘋狂Java實戰(zhàn)演義》的所有項目代碼,這些項目可以作為本書課后練習(xí)的“非標(biāo)準(zhǔn)答案”,如果讀者需要獲取關(guān)于課后習(xí)題的解決方法、編程思路,可以登錄http://www.crazyit.org站點與筆者及本書龐大的讀者群相互交流。

瘋狂Java講義 內(nèi)容簡介

1)作者提供用于學(xué)習(xí)和交流的配套網(wǎng)站及作者親自在線的答疑微信群、QQ群。
2)DVD光盤中含
√ 1500分鐘圖書部分內(nèi)容的相關(guān)視頻
√ 圖書配套代碼
√ Java面試題真題
√ PPT課件
√ 設(shè)計模式電子書
√ 有助于完成課后練習(xí)的大量完整案例
3)《瘋狂Java講義》歷時十年沉淀,現(xiàn)已升級到第4版,經(jīng)過無數(shù)Java學(xué)習(xí)者的反復(fù)驗證,被包括北京大學(xué)在內(nèi)的大量985、211高校的優(yōu)秀教師引薦為參考資料、選作教材。
4)《瘋狂Java講義》曾翻譯為中文繁體字版,在寶島臺灣上市發(fā)行。
5)《瘋狂Java講義》屢獲殊榮,多次獲取電子工業(yè)出版社的“暢銷圖書”、“長銷圖書”獎項,作者本人也多次獲得“優(yōu)秀作者”稱號。僅第3版一版的印量即達(dá)9萬多冊。
6)贈送線下課程優(yōu)惠券。
7)介紹新知識時,通過巧妙的類比,將未知事物與已知事物進(jìn)行類比,降低讀者的學(xué)習(xí)難度;對于一些復(fù)雜、易于混淆的語法,本書還歸納了瑯瑯上口的口訣,比如方法重寫的口訣,能讓讀者快速掌握J(rèn)ava的核心語法,并加深記憶。
8)《瘋狂Java講義》不是一本翻譯而來的Java圖書,書中不會有任何生僻、晦澀的翻譯詞匯,有的只是淺顯、易懂的表達(dá);符合中國人思維習(xí)慣、學(xué)習(xí)方式,更適合中國人學(xué)習(xí)Java。

瘋狂Java講義 目錄


第1章 Java語言概述與開發(fā)環(huán)境 1
1.1 Java語言的發(fā)展簡史 2
1.2 Java程序運行機制 4
1.2.1 高級語言的運行機制 4
1.2.2 Java程序的運行機制和JVM 5
1.3 開發(fā)Java的準(zhǔn)備 6
1.3.1 下載和安裝Java 9的JDK 6
學(xué)生提問:不是說JVM是運行Java程序的虛擬機嗎?那JRE和JVM的關(guān)系是怎樣的呢? 6
學(xué)生提問:為什么不安裝公共JRE呢? 8
1.3.2 設(shè)置PATH環(huán)境變量 9
學(xué)生提問:為什么選擇用戶變量?用戶變量與系統(tǒng)變量有什么區(qū)別? 10
1.4 **個Java程序 11
1.4.1 編輯Java源代碼 11
1.4.2 編譯Java程序 11
學(xué)生提問:當(dāng)編譯C程序時,不僅需要指定存放目標(biāo)文件的位置,也需要指定目標(biāo)文件的文件名,這里使用javac編譯Java程序時怎么不需要指定目標(biāo)文件的文件名呢? 12
1.4.3 運行Java程序 12
1.4.4 根據(jù)CLASSPATH環(huán)境變量定位類 13
1.5 Java程序的基本規(guī)則 14
1.5.1 Java程序的組織形式 14
1.5.2 Java源文件的命名規(guī)則 15
1.5.3 初學(xué)者容易犯的錯誤 15
1.6 JDK 9新增的jshell工具 17
1.7 Java 9的G1垃圾回收器 18
1.8 何時開始使用IDE工具 20
學(xué)生提問:我想學(xué)習(xí)Java編程,到底是學(xué)習(xí)Eclipse好,還是學(xué)習(xí)NetBeans好呢? 21
1.9 本章小結(jié) 21
本章練習(xí) 21

第2章 理解面向?qū)ο?22
2.1 面向?qū)ο?23
2.1.1 結(jié)構(gòu)化程序設(shè)計簡介 23
2.1.2 程序的三種基本結(jié)構(gòu) 24
2.1.3 面向?qū)ο蟪绦蛟O(shè)計簡介 26
2.1.4 面向?qū)ο蟮幕咎卣?27
2.2 UML(統(tǒng)一建模語言)介紹 28
2.2.1 用例圖 30
2.2.2 類圖 30
2.2.3 組件圖 32
2.2.4 部署圖 33
2.2.5 順序圖 33
2.2.6 活動圖 34
2.2.7 狀態(tài)機圖 35
2.3 Java的面向?qū)ο筇卣?36
2.3.1 一切都是對象 36
2.3.2 類和對象 36
2.4 本章小結(jié) 37

第3章 數(shù)據(jù)類型和運算符 38
3.1 注釋 39
3.1.1 單行注釋和多行注釋 39
3.1.2 Java 9增強文檔注釋 40
學(xué)生提問:API文檔是什么? 40
學(xué)生提問:為什么要學(xué)習(xí)查看API文檔的方法? 42
3.2 標(biāo)識符和關(guān)鍵字 46
3.2.1 分隔符 46
3.2.2 Java 9的標(biāo)識符規(guī)則 48
3.2.3 Java關(guān)鍵字 48
3.3 數(shù)據(jù)類型分類 48
學(xué)生提問:什么是變量?變量有什么用? 49
3.4 基本數(shù)據(jù)類型 49
3.4.1 整型 50
3.4.2 字符型 52
學(xué)生提問:什么是字符集? 52
3.4.3 浮點型 53
3.4.4 數(shù)值中使用下畫線分隔 54
3.4.5 布爾型 55
3.5 基本類型的類型轉(zhuǎn)換 55
3.5.1 自動類型轉(zhuǎn)換 56
3.5.2 強制類型轉(zhuǎn)換 57
3.5.3 表達(dá)式類型的自動提升 58
3.6 直接量 59
3.6.1 直接量的類型 59
3.6.2 直接量的賦值 60
3.7 運算符 61
3.7.1 算術(shù)運算符 61
3.7.2 賦值運算符 63
3.7.3 位運算符 64
3.7.4 擴展后的賦值運算符 66
3.7.5 比較運算符 67
3.7.6 邏輯運算符 68
3.7.7 三目運算符 69
3.7.8 運算符的結(jié)合性和優(yōu)先級 69
3.8 本章小結(jié) 71
本章練習(xí) 71

第4章 流程控制與數(shù)組 72
4.1 順序結(jié)構(gòu) 73
4.2 分支結(jié)構(gòu) 73
4.2.1 if條件語句 73
4.2.2 Java 7增強后的switch分支語句 77
4.3 循環(huán)結(jié)構(gòu) 79
4.3.1 while循環(huán)語句 79
4.3.2 do while循環(huán)語句 80
4.3.3 for循環(huán) 81
4.3.4 嵌套循環(huán) 84
4.4 控制循環(huán)結(jié)構(gòu) 85
4.4.1 使用break結(jié)束循環(huán) 85
4.4.2 使用continue忽略本次循環(huán)剩下語句 86
4.4.3 使用return結(jié)束方法 87
4.5 數(shù)組類型 87
4.5.1 理解數(shù)組:數(shù)組也是一種類型 87
學(xué)生提問:int[]是一種類型嗎?怎么使用這種類型呢? 88
4.5.2 定義數(shù)組 88
4.5.3 數(shù)組的初始化 89
學(xué)生提問:能不能只分配內(nèi)存空間,不賦初始值呢? 89
4.5.4 使用數(shù)組 90
學(xué)生提問:為什么要我記住這些異常信息? 90
4.5.5 foreach循環(huán) 91
4.6 深入數(shù)組 92
4.6.1 內(nèi)存中的數(shù)組 92
為什么有棧內(nèi)存和堆內(nèi)存之分? 93
4.6.2 基本類型數(shù)組的初始化 95
4.6.3 引用類型數(shù)組的初始化 96
4.6.4 沒有多維數(shù)組 98
學(xué)生提問:我是否可以讓圖4.13中灰色覆蓋的數(shù)組元素再次指向另一個數(shù)組?這樣不就可以擴展成三維數(shù)組,甚至擴展成更多維的數(shù)組嗎? 99
4.6.5 Java 8增強的工具類:Arrays 100
4.6.6 數(shù)組的應(yīng)用舉例 103
4.7 本章小結(jié) 106
本章練習(xí) 106

第5章 面向?qū)ο螅ㄉ希?107
5.1 類和對象 108
5.1.1 定義類 108
構(gòu)造器不是沒有返回值嗎?為什么不能用void聲明呢? 110
5.1.2 對象的產(chǎn)生和使用 111
5.1.3 對象、引用和指針 111
5.1.4 對象的this引用 112
5.2 方法詳解 116
5.2.1 方法的所屬性 116
5.2.2 方法的參數(shù)傳遞機制 117
5.2.3 形參個數(shù)可變的方法 120
5.2.4 遞歸方法 121
5.2.5 方法重載 123
學(xué)生提問:為什么方法的返回值類型不能用于區(qū)分重載的方法? 123
5.3 成員變量和局部變量 124
5.3.1 成員變量和局部變量是什么 124
5.3.2 成員變量的初始化和內(nèi)存中的運行機制 127
5.3.3 局部變量的初始化和內(nèi)存中的運行機制 129
5.3.4 變量的使用規(guī)則 130
5.4 隱藏和封裝 131
5.4.1 理解封裝 131
5.4.2 使用訪問控制符 131
5.4.3 package、import和import static 134
5.4.4 Java的常用包 139
5.5 深入構(gòu)造器 139
5.5.1 使用構(gòu)造器執(zhí)行初始化 139
學(xué)生提問:構(gòu)造器是創(chuàng)建Java對象的途徑,是不是說構(gòu)造器完全負(fù)責(zé)創(chuàng)建Java對象? 140
5.5.2 構(gòu)造器重載 140
學(xué)生提問:為什么要用this來調(diào)用另一個重載的構(gòu)造器?我把另一個構(gòu)造器里的代碼復(fù)制、粘貼到這個構(gòu)造器里不就可以了嗎? 142
5.6 類的繼承 142
5.6.1 繼承的特點 142
5.6.2 重寫父類的方法 143
5.6.3 super限定 145
5.6.4 調(diào)用父類構(gòu)造器 147
學(xué)生提問:為什么我創(chuàng)建Java對象時從未感覺到j(luò)ava.lang. Object類的構(gòu)造器被調(diào)用過? 149
5.7 多態(tài) 149
5.7.1 多態(tài)性 149
5.7.2 引用變量的強制類型轉(zhuǎn)換 151
5.7.3 instanceof運算符 152
5.8 繼承與組合 153
5.8.1 使用繼承的注意點 153
5.8.2 利用組合實現(xiàn)復(fù)用 154
學(xué)生提問:使用組合關(guān)系來實現(xiàn)復(fù)用時,需要創(chuàng)建兩個Animal對象,是不是意味著使用組合關(guān)系時系統(tǒng)開銷更大? 157
5.9 初始化塊 157
5.9.1 使用初始化塊 157
5.9.2 初始化塊和構(gòu)造器 159
5.9.3 靜態(tài)初始化塊 160
5.10 本章小結(jié) 162
本章練習(xí) 162

第6章 面向?qū)ο螅ㄏ拢?164
6.1 Java 8增強的包裝類 165
學(xué)生提問:Java為什么要對這些數(shù)據(jù)進(jìn)行緩存呢? 168
6.2 處理對象 169
6.2.1 打印對象和toString方法 169
6.2.2 ==和equals方法 171
學(xué)生提問:上面程序中判斷obj是否為Person類的實例時,為何不用obj instanceof Person來判斷呢? 174
6.3 類成員 174
6.3.1 理解類成員 174
6.3.2 單例(Singleton)類 175
6.4 final修飾符 176
6.4.1 final成員變量 177
6.4.2 final局部變量 179
6.4.3 final修飾基本類型變量和引用類型變量的區(qū)別 179
6.4.4 可執(zhí)行“宏替換”的final變量 180
6.4.5 final方法 182
6.4.6 final類 182
6.4.7 不可變類 183
6.4.8 緩存實例的不可變類 185
6.5 抽象類 188
6.5.1 抽象方法和抽象類 188
6.5.2 抽象類的作用 191
6.6 Java 9改進(jìn)的接口 192
6.6.1 接口的概念 192
6.6.2 Java 9中接口的定義 193
6.6.3 接口的繼承 195
6.6.4 使用接口 196
6.6.5 接口和抽象類 197
6.6.6 面向接口編程 198
6.7 內(nèi)部類 202
6.7.1 非靜態(tài)內(nèi)部類 202
學(xué)生提問:非靜態(tài)內(nèi)部類對象和外部類對象的關(guān)系是怎樣的? 205
6.7.2 靜態(tài)內(nèi)部類 206
學(xué)生提問:為什么靜態(tài)內(nèi)部類的實例方法也不能訪問外部類的實例屬性呢? 207
學(xué)生提問:接口里是否能定義內(nèi)部接口? 208
6.7.3 使用內(nèi)部類 208
學(xué)生提問:既然內(nèi)部類是外部類的成員,那么是否可以為外部類定義子類,在子類中再定義一個內(nèi)部類來重寫其父類中的內(nèi)部類呢? 210
6.7.4 局部內(nèi)部類 210
6.7.5 Java 8改進(jìn)的匿名內(nèi)部類 211
6.8 Java 8新增的Lambda表達(dá)式 214
6.8.1 Lambda表達(dá)式入門 214
6.8.2 Lambda表達(dá)式與函數(shù)式接口 217
6.8.3 方法引用與構(gòu)造器引用 218
6.8.4 Lambda表達(dá)式與匿名內(nèi)部類的聯(lián)系和區(qū)別 221
6.8.5 使用Lambda表達(dá)式調(diào)用Arrays的類
方法 222
6.9 枚舉類 223
6.9.1 手動實現(xiàn)枚舉類 223
6.9.2 枚舉類入門 223
6.9.3 枚舉類的成員變量、方法和構(gòu)造器 225
6.9.4 實現(xiàn)接口的枚舉類 227
學(xué)生提問:枚舉類不是用final修飾了嗎?怎么還能派生子類呢? 228
6.9.5 包含抽象方法的枚舉類 228
6.10 對象與垃圾回收 229
6.10.1 對象在內(nèi)存中的狀態(tài) 229
6.10.2 強制垃圾回收 230
6.10.3 finalize方法 231
6.10.4 對象的軟、弱和虛引用 233
6.11 修飾符的適用范圍 236
6.12 Java 9的多版本JAR包 237
6.12.1 jar命令詳解 237
6.12.2 創(chuàng)建可執(zhí)行的JAR包 240
6.12.3 關(guān)于JAR包的技巧 241
6.13 本章小結(jié) 242
本章練習(xí) 242

第7章 Java基礎(chǔ)類庫 243
7.1 與用戶互動 244
7.1.1 運行Java程序的參數(shù) 244
7.1.2 使用Scanner獲取鍵盤輸入 245
7.2 系統(tǒng)相關(guān) 247
7.2.1 System類 247
7.2.2 Runtime類與Java 9的ProcessHandle 249
7.3 常用類 250
7.3.1 Object類 250
7.3.2 Java 7新增的Objects類 252
7.3.3 Java 9改進(jìn)的String、StringBuffer和StringBuilder類 253
7.3.4 Math類 256
7.3.5 Java 7的ThreadLocalRandom與Random 258
7.3.6 BigDecimal類 260
7.4 日期、時間類 262
7.4.1 Date類 262
7.4.2 Calendar類 263
7.4.3 Java 8新增的日期、時間包 266
7.5 正則表達(dá)式 268
7.5.1 創(chuàng)建正則表達(dá)式 268
7.5.2 使用正則表達(dá)式 271
7.6 變量處理和方法處理 274
7.6.1 Java 9增強的MethodHandle 274
7.6.2 Java 9增加的VarHandle 275
7.7 Java 9改進(jìn)的國際化與格式化 276
7.7.1 Java國際化的思路 277
7.7.2 Java支持的國家和語言 277
7.7.3 完成程序國際化 278
7.7.4 使用MessageFormat處理包含占位符的字符串 279
7.7.5 使用類文件代替資源文件 280
7.7.6 Java 9新增的日志API 281
7.7.7 使用NumberFormat格式化數(shù)字 283
7.7.8 使用DateFormat格式化日期、時間 284
7.7.9 使用SimpleDateFormat格式化日期 286
7.8 Java 8新增的日期、時間格式器 286
7.8.1 使用DateTimeFormatter完成格式化 287
7.8.2 使用DateTimeFormatter解析字符串 288
7.9 本章小結(jié) 289
本章練習(xí) 289

第8章 Java集合 290
8.1 Java集合概述 291
8.2 Collection和Iterator接口 292
8.2.1 使用Lambda表達(dá)式遍歷集合 294
8.2.2 使用Java 8增強的Iterator遍歷集合元素 295
8.2.3 使用Lambda表達(dá)式遍歷Iterator 296
8.2.4 使用foreach循環(huán)遍歷集合元素 297
8.2.5 使用Java 8新增的Predicate操作集合 297
8.2.6 使用Java 8新增的Stream操作集合 298
8.3 Set集合 300
8.3.1 HashSet類 301
學(xué)生提問:hashCode()方法對于HashSet是不是十分重要? 302
8.3.2 LinkedHashSet類 304
8.3.3 TreeSet類 305
8.3.4 EnumSet類 311
8.3.5 各Set實現(xiàn)類的性能分析 312
8.4 List集合 313
8.4.1 Java 8改進(jìn)的List接口和ListIterator接口 313
8.4.2 ArrayList和Vector實現(xiàn)類 316
8.4.3 固定長度的List 317
8.5 Queue集合 317
8.5.1 PriorityQueue實現(xiàn)類 318
8.5.2 Deque接口與ArrayDeque實現(xiàn)類 318
8.5.3 LinkedList實現(xiàn)類 320
8.5.4 各種線性表的性能分析 321
8.6 Java 8增強的Map集合 322
8.6.1 Java 8為Map新增的方法 324
8.6.2 Java 8改進(jìn)的HashMap和Hashtable實現(xiàn)類 325
8.6.3 LinkedHashMap實現(xiàn)類 328
8.6.4 使用Properties讀寫屬性文件 328
8.6.5 SortedMap接口和TreeMap實現(xiàn)類 329
8.6.6 WeakHashMap實現(xiàn)類 332
8.6.7 IdentityHashMap實現(xiàn)類 333
8.6.8 EnumMap實現(xiàn)類 333
8.6.9 各Map實現(xiàn)類的性能分析 334
8.7 HashSet和HashMap的性能選項 334
8.8 操作集合的工具類:Collections 335
8.8.1 排序操作 335
8.8.2 查找、替換操作 338
8.8.3 同步控制 339
8.8.4 設(shè)置不可變集合 339
8.8.5 Java 9新增的不可變集合 340
8.9 煩瑣的接口:Enumeration 341
8.10 本章小結(jié) 342
本章練習(xí) 342

第9章 泛型 343
9.1 泛型入門 344
9.1.1 編譯時不檢查類型的異常 344
9.1.2 使用泛型 344
9.1.3 Java 9增強的“菱形”語法 345
9.2 深入泛型 347
9.2.1 定義泛型接口、類 347
9.2.2 從泛型類派生子類 348
9.2.3 并不存在泛型類 349
9.3 類型通配符 350
9.3.1 使用類型通配符 352
9.3.2 設(shè)定類型通配符的上限 352
9.3.3 設(shè)定類型通配符的下限 354
9.3.4 設(shè)定泛型形參的上限 356
9.4 泛型方法 356
9.4.1 定義泛型方法 356
9.4.2 泛型方法和類型通配符的區(qū)別 359
9.4.3 Java 7的“菱形”語法與泛型構(gòu)造器 360
9.4.4 泛型方法與方法重載 361
9.4.5 Java 8改進(jìn)的類型推斷 362
9.5 擦除和轉(zhuǎn)換 362
9.6 泛型與數(shù)組 364
9.7 本章小結(jié) 365

第10章 異常處理 366
10.1 異常概述 367
10.2 異常處理機制 368
10.2.1 使用try...catch捕獲異常 368
10.2.2 異常類的繼承體系 370
10.2.3 Java 7新增的多異常捕獲 373
10.2.4 訪問異常信息 373
10.2.5 使用finally回收資源 374
10.2.6 異常處理的嵌套 376
10.2.7 Java 9增強的自動關(guān)閉資源的try語句 377
10.3 Checked異常和Runtime異常體系 378
10.3.1 使用throws聲明拋出異常 379
10.3.2 方法重寫時聲明拋出異常的限制 380
10.4 使用throw拋出異常 380
10.4.1 拋出異常 380
10.4.2 自定義異常類 382
10.4.3 catch和throw同時使用 382
10.4.4 Java 7增強的throw語句 384
10.4.5 異常鏈 385
10.5 Java的異常跟蹤棧 386
10.6 異常處理規(guī)則 388
10.6.1 不要過度使用異常 388
10.6.2 不要使用過于龐大的try塊 389
10.6.3 避免使用Catch All語句 390
10.6.4 不要忽略捕獲到的異常 390
10.7 本章小結(jié) 390
本章練習(xí) 390

第11章 AWT編程 391
11.1 Java 9改進(jìn)的GUI(圖形用戶界面)和AWT 392
11.2 AWT容器 393
11.3 布局管理器 396
11.3.1 FlowLayout布局管理器 396
11.3.2 BorderLayout布局管理器 397
學(xué)生提問:BorderLayout*多只能放置5個組件嗎?那它也太不實用了吧? 398
11.3.3 GridLayout布局管理器 399
11.3.4 GridBagLayout布局管理器 400
11.3.5 CardLayout布局管理器 402
11.3.6 絕對定位 404
11.3.7 BoxLayout布局管理器 405
學(xué)生提問:圖11.15和圖11.16顯示的所有按鈕都緊挨在一起,如果希望像FlowLayout、GridLayout等布局管理器那樣指定組件的間距應(yīng)該怎么辦? 406
11.4 AWT常用組件 407
11.4.1 基本組件 407
11.4.2 對話框(Dialog) 409
11.5 事件處理 411
11.5.1 Java事件模型的流程 411
11.5.2 事件和事件監(jiān)聽器 413
11.5.3 事件適配器 417
11.5.4 使用內(nèi)部類實現(xiàn)監(jiān)聽器 418
11.5.5 使用外部類實現(xiàn)監(jiān)聽器 418
11.5.6 類本身作為事件監(jiān)聽器類 419
11.5.7 匿名內(nèi)部類實現(xiàn)監(jiān)聽器 420
11.6 AWT菜單 421
11.6.1 菜單條、菜單和菜單項 421
11.6.2 右鍵菜單 423
學(xué)生提問:為什么即使我沒有給多行文本域編寫右鍵菜單,但當(dāng)我在多行文本域上單擊右鍵時也一樣會彈出右鍵菜單? 424
11.7 在AWT中繪圖 425
11.7.1 畫圖的實現(xiàn)原理 425
11.7.2 使用Graphics類 425
11.8 處理位圖 430
11.8.1 Image抽象類和BufferedImage實現(xiàn)類 430
11.8.2 Java 9增強的ImageIO 432
11.9 剪貼板 436
11.9.1 數(shù)據(jù)傳遞的類和接口 436
11.9.2 傳遞文本 437
11.9.3 使用系統(tǒng)剪貼板傳遞圖像 438
11.9.4 使用本地剪貼板傳遞對象引用 441
11.9.5 通過系統(tǒng)剪貼板傳遞Java對象 443
11.10 拖放功能 446
11.10.1 拖放目標(biāo) 446
11.10.2 拖放源 449
11.11 本章小結(jié) 451
本章練習(xí) 451

第12章 Swing編程 452
12.1 Swing概述 453
12.2 Swing基本組件的用法 454
12.2.1 Java的Swing組件層次 454
12.2.2 AWT組件的Swing實現(xiàn) 455
學(xué)生提問:為什么單擊Swing多行文本域時不是彈出像AWT多行文本域中的右鍵菜單? 461
12.2.3 為組件設(shè)置邊框 461
12.2.4 Swing組件的雙緩沖和鍵盤驅(qū)動 463
12.2.5 使用JToolBar創(chuàng)建工具條 464
12.2.6 使用JFileChooser和Java 7增強的JColorChooser 466
12.2.7 使用JOptionPane 473
12.3 Swing中的特殊容器 478
12.3.1 使用JSplitPane 478
12.3.2 使用JTabbedPane 480
12.3.3 使用JLayeredPane、JDesktopPane和JInternalFrame 484
12.4 Swing簡化的拖放功能 491
12.5 Java 7新增的Swing功能 492
12.5.1 使用JLayer裝飾組件 492
12.5.2 創(chuàng)建透明、不規(guī)則形狀窗口 498
12.6 使用JProgressBar、ProgressMonitor和
BoundedRangeModel創(chuàng)建進(jìn)度條 500
12.6.1 創(chuàng)建進(jìn)度條 500
12.6.2 創(chuàng)建進(jìn)度對話框 503
12.7 使用JSlider和BoundedRangeModel創(chuàng)建滑動條 505
12.8 使用JSpinner和SpinnerModel創(chuàng)建微調(diào)控制器 508
12.9 使用JList、JComboBox創(chuàng)建列表框 511
12.9.1 簡單列表框 511
12.9.2 不強制存儲列表項的ListModel和ComboBoxModel 514
12.9.3 強制存儲列表項的DefaultListModel和 DefaultComboBoxModel 517
學(xué)生提問:為什么JComboBox提供了添加、刪除列表項的方法?而JList沒有提供添加、刪除列表項的方法呢? 519
12.9.4 使用ListCellRenderer改變列表項外觀 519
12.10 使用JTree和TreeModel創(chuàng)建樹 521
12.10.1 創(chuàng)建樹 522
12.10.2 拖動、編輯樹節(jié)點 524
12.10.3 監(jiān)聽節(jié)點事件 528
12.10.4 使用DefaultTreeCellRenderer改變節(jié)點外觀 530
12.10.5 擴展DefaultTreeCellRenderer改變節(jié)點外觀 531
12.10.6 實現(xiàn)TreeCellRenderer改變節(jié)點外觀 534
12.11 使用JTable和TableModel創(chuàng)建表格 535
12.11.1 創(chuàng)建表格 536
學(xué)生提問:我們指定的表格數(shù)據(jù)、表格列標(biāo)題都是Object類型的數(shù)組,JTable如何顯示這些Object對象? 536
12.11.2 TableModel和監(jiān)聽器 541
12.11.3 TableColumnModel和監(jiān)聽器 545
12.11.4 實現(xiàn)排序 548
12.11.5 繪制單元格內(nèi)容 551
12.11.6 編輯單元格內(nèi)容 554
12.12 使用JFormattedTextField和JTextPane創(chuàng)建格式文本 557
12.12.1 監(jiān)聽Document的變化 558
12.12.2 使用JPasswordField 560
12.12.3 使用JFormattedTextField 560
12.12.4 使用JEditorPane 568
12.12.5 使用JTextPane 568
12.13 本章小結(jié) 575
本章練習(xí) 575

第13章 MySQL數(shù)據(jù)庫與JDBC編程 576
13.1 JDBC基礎(chǔ) 577
13.1.1 JDBC簡介 577
13.1.2 JDBC驅(qū)動程序 578
13.2 SQL語法 579
13.2.1 安裝數(shù)據(jù)庫 579
13.2.2 關(guān)系數(shù)據(jù)庫基本概念和MySQL基本命令 581
13.2.3 SQL語句基礎(chǔ) 583
13.2.4 DDL語句 584
13.2.5 數(shù)據(jù)庫約束 588
13.2.6 索引 595
13.2.7 視圖 596
13.2.8 DML語句語法 597
13.2.9 單表查詢 599
13.2.10 數(shù)據(jù)庫函數(shù) 603
13.2.11 分組和組函數(shù) 605
13.2.12 多表連接查詢 607
13.2.13 子查詢 611
13.2.14 集合運算 612
13.3 JDBC的典型用法 613
13.3.1 JDBC 4.2常用接口和類簡介 613
13.3.2 JDBC編程步驟 615
學(xué)生提問:前面給出的僅僅是MySQL和Oracle兩種數(shù)據(jù)庫的驅(qū)動,我看不出驅(qū)動類字符串有什么規(guī)律啊。如果我希望使用其他數(shù)據(jù)庫,那怎么找到其他數(shù)據(jù)庫的驅(qū)動類呢? 616
13.4 執(zhí)行SQL語句的方式 618
13.4.1 使用Java 8新增的executeLargeUpdate方法執(zhí)行DDL和DML語句 618
13.4.2 使用execute方法執(zhí)行SQL語句 620
13.4.3 使用PreparedStatement執(zhí)行SQL語句 621
13.4.4 使用CallableStatement調(diào)用存儲過程 626
13.5 管理結(jié)果集 627
13.5.1 可滾動、可更新的結(jié)果集 627
13.5.2 處理Blob類型數(shù)據(jù) 629
13.5.3 使用ResultSetMetaData分析結(jié)果集 634
13.6 Javar的RowSet 636
13.6.1 Java 7新增的RowSetFactory與RowSet 637
13.6.2 離線RowSet 638
13.6.3 離線RowSet的查詢分頁 640
13.7 事務(wù)處理 641
13.7.1 事務(wù)的概念和MySQL事務(wù)支持 641
13.7.2 JDBC的事務(wù)支持 643
13.7.3 Java 8增強的批量更新 645
13.8 分析數(shù)據(jù)庫信息 646
13.8.1 使用DatabaseMetaData分析數(shù)據(jù)庫信息 646
13.8.2 使用系統(tǒng)表分析數(shù)據(jù)庫信息 648
13.8.3 選擇合適的分析方式 649
13.9 使用連接池管理連接 649
13.9.1 DBCP數(shù)據(jù)源 650
13.9.2 C3P0數(shù)據(jù)源 651
13.10 本章小結(jié) 651
本章練習(xí) 651

第14章 注解(Annotation) 652
14.1 基本注解 653
14.1.1 限定重寫父類方法:@Override 653
14.1.2 Java 9增強的@Deprecated 654
14.1.3 抑制編譯器警告:@SuppressWarnings 655
14.1.4 “堆污染”警告與Java 9增強的@SafeVarargs 655
14.1.5 Java 8的函數(shù)式接口與@FunctionalInterface 656
14.2 JDK的元注解 657
14.2.1 使用@Retention 657
14.2.2 使用@Target 658
14.2.3 使用@Documented 658
14.2.4 使用@Inherited 659
14.3 自定義注解 660
14.3.1 定義注解 660
14.3.2 提取注解信息 661
14.3.3 使用注解的示例 663
14.3.4 Java 8新增的重復(fù)注解 667
14.3.5 Java 8新增的類型注解 669
14.4 編譯時處理注解 670
14.5 本章小結(jié) 674

第15章 輸入/輸出 675
15.1 File類 676
15.1.1 訪問文件和目錄 676
15.1.2 文件過濾器 678
15.2 理解Java的IO流 679
15.2.1 流的分類 679
15.2.2 流的概念模型 680
15.3 字節(jié)流和字符流 681
15.3.1 InputStream和Reader 681
15.3.2 OutputStream和Writer 683
15.4 輸入/輸出流體系 685
15.4.1 處理流的用法 685
15.4.2 輸入/輸出流體系 686
15.4.3 轉(zhuǎn)換流 688
學(xué)生提問:怎么沒有把字符流轉(zhuǎn)換成字節(jié)流的轉(zhuǎn)換流呢? 688
15.4.4 推回輸入流 689
15.5 重定向標(biāo)準(zhǔn)輸入/輸出 690
15.6 Java虛擬機讀寫其他進(jìn)程的數(shù)據(jù) 691
15.7 RandomAccessFile 694
15.8 Java 9改進(jìn)的對象序列化 697
15.8.1 序列化的含義和意義 697
15.8.2 使用對象流實現(xiàn)序列化 697
15.8.3 對象引用的序列化 699
15.8.4 Java 9增加的過濾功能 703
15.8.5 自定義序列化 704
15.8.6 另一種自定義序列化機制 709
15.8.7 版本 710
15.9 NIO 711
15.9.1 Java新IO概述 711
15.9.2 使用Buffer 712
15.9.3 使用Channel 715
15.9.4 字符集和Charset 717
學(xué)生提問:二進(jìn)制序列與字符之間如何對應(yīng)呢? 718
15.9.5 文件鎖 720
15.10 Java 7的NIO.2 721
15.10.1 Path、Paths和Files核心API 721
15.10.2 使用FileVisitor遍歷文件和目錄 723
15.10.3 使用WatchService監(jiān)控文件變化 724
15.10.4 訪問文件屬性 725
15.11 本章小結(jié) 726
本章練習(xí) 727

第16章 多線程 728
16.1 線程概述 729
16.1.1 線程和進(jìn)程 729
16.1.2 多線程的優(yōu)勢 730
16.2 線程的創(chuàng)建和啟動 731
16.2.1 繼承Thread類創(chuàng)建線程類 731
16.2.2 實現(xiàn)Runnable接口創(chuàng)建線程類 732
16.2.3 使用Callable和Future創(chuàng)建線程 733
16.2.4 創(chuàng)建線程的三種方式對比 735
16.3 線程的生命周期 735
16.3.1 新建和就緒狀態(tài) 735
16.3.2 運行和阻塞狀態(tài) 737
16.3.3 線程死亡 738
16.4 控制線程 739
16.4.1 join線程 739
16.4.2 后臺線程 740
16.4.3 線程睡眠:sleep 741
16.4.4 改變線程優(yōu)先級 742
16.5 線程同步 743
16.5.1 線程安全問題 743
16.5.2 同步代碼塊 745
16.5.3 同步方法 747
16.5.4 釋放同步監(jiān)視器的鎖定 749
16.5.5 同步鎖(Lock) 749
16.5.6 死鎖 751
16.6 線程通信 753
16.6.1 傳統(tǒng)的線程通信 753
16.6.2 使用Condition控制線程通信 756
16.6.3 使用阻塞隊列(BlockingQueue)控制線程通信 758
16.7 線程組和未處理的異常 761
16.8 線程池 764
16.8.1 Java 8改進(jìn)的線程池 764
16.8.2 Java 8增強的ForkJoinPool 766
16.9 線程相關(guān)類 769
16.9.1 ThreadLocal類 769
16.9.2 包裝線程不安全的集合 771
16.9.3 線程安全的集合類 771
16.9.4 Java 9新增的發(fā)布-訂閱框架 772
16.10 本章小結(jié) 774
本章練習(xí) 775

第17章 網(wǎng)絡(luò)編程 776
17.1 網(wǎng)絡(luò)編程的基礎(chǔ)知識 777
17.1.1 網(wǎng)絡(luò)基礎(chǔ)知識 777
17.1.2 IP地址和端口號 778
17.2 Java的基本網(wǎng)絡(luò)支持 779
17.2.1 使用InetAddress 779
17.2.2 使用URLDecoder和URLEncoder 780
17.2.3 URL、URLConnection和URLPermission 781
17.3 基于TCP協(xié)議的網(wǎng)絡(luò)編程 787
17.3.1 TCP協(xié)議基礎(chǔ) 787
17.3.2 使用ServerSocket創(chuàng)建TCP服務(wù)器端 788
17.3.3 使用Socket進(jìn)行通信 788
17.3.4 加入多線程 791
17.3.5 記錄用戶信息 793
17.3.6 半關(guān)閉的Socket 801
17.3.7 使用NIO實現(xiàn)非阻塞Socket通信 802
17.3.8 使用Java 7的AIO實現(xiàn)非阻塞通信 807
17.4 基于UDP協(xié)議的網(wǎng)絡(luò)編程 814
17.4.1 UDP協(xié)議基礎(chǔ) 814
17.4.2 使用DatagramSocket發(fā)送、接收數(shù)據(jù) 814
17.4.3 使用MulticastSocket實現(xiàn)多點廣播 818
17.5 使用代理服務(wù)器 828
17.5.1 直接使用Proxy創(chuàng)建連接 829
17.5.2 使用ProxySelector自動選擇代理服務(wù)器 830
17.6 本章小結(jié) 832
本章練習(xí) 832

第18章 類加載機制與反射 833
18.1 類的加載、連接和初始化 834
18.1.1 JVM和類 834
18.1.2 類的加載 835
18.1.3 類的連接 836
18.1.4 類的初始化 836
18.1.5 類初始化的時機 837
18.2 類加載器 838
18.2.1 類加載機制 838
18.2.2 創(chuàng)建并使用自定義的類加載器 840
18.2.3 URLClassLoader類 843
18.3 通過反射查看類信息 844
18.3.1 獲得Class對象 845
18.3.2 從Class中獲取信息 845
18.3.3 Java 8新增的方法參數(shù)反射 849
18.4 使用反射生成并操作對象 850
18.4.1 創(chuàng)建對象 850
18.4.2 調(diào)用方法 852
18.4.3 訪問成員變量值 854
18.4.4 操作數(shù)組 855
18.5 使用反射生成JDK動態(tài)代理 857
18.5.1 使用Proxy和InvocationHandler創(chuàng)建動態(tài)代理 857
18.5.2 動態(tài)代理和AOP 859
18.6 反射和泛型 862
18.6.1 泛型和Class類 862
18.6.2 使用反射來獲取泛型信息 864
18.7 本章小結(jié) 865
本章練習(xí) 866

附錄A Java 9的模塊化系統(tǒng) 867
展開全部

瘋狂Java講義 作者簡介

李剛,十余年軟件開發(fā)從業(yè)經(jīng)驗,瘋狂軟件教育中心教學(xué)總監(jiān)。瘋狂Java實訓(xùn)營創(chuàng)始人,瘋狂Java體系原創(chuàng)圖書作者。廣東技術(shù)師范學(xué)院計算機科學(xué)系兼職副教授,CSDN特邀講師。培訓(xùn)的學(xué)生已在騰訊、阿里、華為、IBM、網(wǎng)易、唯品會、電信盈科等名企就職。國內(nèi)知名高端IT技術(shù)圖書作家,已出版《瘋狂Java講義》《瘋狂Android講義》《輕量級Java EE企業(yè)應(yīng)用實戰(zhàn)》《瘋狂前端開發(fā)講義》《瘋狂HTML5/CSS3/JavaScript講義》《瘋狂iOS講義(基礎(chǔ)篇)(提高篇)》《瘋狂XML講義》《經(jīng)典JavaEE企業(yè)應(yīng)用實戰(zhàn)》《Struts 2.x權(quán)威指南》等著作。其中瘋狂Java體系圖書均已沉淀多年,贏得極高的市場認(rèn)同,多次重印,多部著作印刷數(shù)量超過10萬冊,并被多所“985”“211”院校選作教材,部分圖書已被翻譯成繁體中文版,授權(quán)到中國臺灣地區(qū)。

商品評論(0條)
暫無評論……
書友推薦
編輯推薦
返回頂部
中圖網(wǎng)
在線客服
主站蜘蛛池模板: 精益专家 - 设备管理软件|HSE管理系统|设备管理系统|EHS安全管理系统 | 凝胶成像仪,化学发光凝胶成像系统,凝胶成像分析系统-上海培清科技有限公司 | 祝融环境-地源热泵多恒系统高新技术企业,舒适生活环境缔造者! | 浇注料-高铝砖耐火砖-郑州凯瑞得窑炉耐火材料有限公司 | 万濠投影仪_瑞士TRIMOS高度仪_尼康投影仪V12BDC|量子仪器 | 广州活动策划公司-15+年专业大型公关活动策划执行管理经验-睿阳广告 | 智慧钢琴-电钢琴-便携钢琴-数码钢琴-深圳市特伦斯乐器有限公司 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 无负压供水设备,消防稳压供水设备-淄博创辉供水设备有限公司 | 单电机制砂机,BHS制砂机,制沙机设备,制砂机价格-正升制砂机厂家 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 管家婆-管家婆软件-管家婆辉煌-管家婆进销存-管家婆工贸ERP | 锂离子电池厂家-山东中信迪生电源| 实验室pH计|电导率仪|溶解氧测定仪|离子浓度计|多参数水质分析仪|pH电极-上海般特仪器有限公司 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 成都租车_成都租车公司_成都租车网_众行宝 | 食品质构分析仪-氧化诱导分析仪-瞬态法导热系数仪|热冰百科 | 冷却塔降噪隔音_冷却塔噪声治理_冷却塔噪音处理厂家-广东康明冷却塔降噪厂家 | 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 氟塑料磁力泵-不锈钢离心泵-耐腐蚀化工泵厂家「皖金泵阀」 | 英语词典_成语词典_日语词典_法语词典_在线词典网 | 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 广州小程序开发_APP开发公司_分销商城系统定制_小跑科技 | 双工位钻铣攻牙机-转换工作台钻攻中心-钻铣攻牙机一体机-浙江利硕自动化设备有限公司 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | (中山|佛山|江门)环氧地坪漆,停车场地板漆,车库地板漆,聚氨酯地板漆-中山永旺地坪漆厂家 | 氧化锆纤维_1800度高温退火炉_1800度高温烧结炉-南京理工宇龙新材料股份有限公司 | 企业彩铃制作_移动、联通、电信集团彩铃上传开通_彩铃定制_商务彩铃管理平台-集团彩铃网 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 干洗店加盟_洗衣店加盟_干洗店设备-伊蔻干洗「武汉总部」 | 志高装潢官网-苏州老房旧房装修改造-二手房装修翻新 | 工业铝型材生产厂家_铝合金型材配件批发精加工定制厂商 - 上海岐易铝业 | 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 全自动固相萃取仪_高通量真空平行浓缩仪-勤业永为 | 五轴加工中心_数控加工中心_铝型材加工中心-罗威斯 | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 | 服务器之家 - 专注于服务器技术及软件下载分享| 不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰]-不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰] | 中国品牌门窗网_中国十大门窗品牌_著名门窗品牌 |