本書以漫畫的形式介紹了Java語言的相關(guān)知識。全書共20章,書中首先介紹了Java語言的歷史、特點(diǎn)、開發(fā)環(huán)境、運(yùn)算符、數(shù)據(jù)類型、數(shù)組、字符串、判斷語句、循環(huán)語句等基礎(chǔ)知識,接著討論了函數(shù)式編程、類與對象、異常、文件操作、集合、圖形用戶界面、網(wǎng)絡(luò)通信、多線程等進(jìn)階內(nèi)容,最后通過一個案例向大家介紹如何爬取圖片。
本書適合對Java感興趣的零基礎(chǔ)初學(xué)者閱讀,包括對編程感興趣的中小學(xué)生和想從事編程工作的人員。
1.本書作者關(guān)東升從事20多年Java編程工作,10多年的IT培訓(xùn)工作,漫畫作者趙大羽是清華美院畢業(yè)的,繪畫功底很深,也從事了多年的用戶體驗(yàn)培訓(xùn)。
2.本書采用漫畫加圖解的方式,以輕松、愉快、歡樂的學(xué)習(xí)方式,講解Java中眾多的技術(shù)知識點(diǎn)。書中惟妙惟肖的漫畫也為每一個知識點(diǎn)的學(xué)習(xí)注入了有趣的靈魂,非常適合初學(xué)編程的小白。
3.《漫畫Java》在趣味的基礎(chǔ)上,把相關(guān)概念梳理得條理清晰,邏輯嚴(yán)謹(jǐn)。
4.讓讀者在看漫畫的過程中不知不覺地掌握J(rèn)ava語言,將復(fù)雜的技術(shù)問題通過漫畫形式講述給讀者
關(guān)東升 軟件架構(gòu)師、高級培訓(xùn)講師。 熟悉Java、Kotlin、Python、iOS、Android、游戲開發(fā)、數(shù)據(jù)庫開發(fā)與設(shè)計、軟件架構(gòu)設(shè)計等多種IT技術(shù)。參與設(shè)計和開發(fā)北京市公交一卡通百億級大型項(xiàng)目,開發(fā)國家農(nóng)產(chǎn)品追溯系統(tǒng)、金融系統(tǒng)微博等移動客戶端項(xiàng)目。近期為中國移動、中國聯(lián)通、南方航空、中石油、工商銀行、平安銀行和天津港務(wù)局等企事業(yè)單位授課。
趙大羽,清華美院畢業(yè)的,繪畫功底很深,也從事了多年的用戶體驗(yàn)培訓(xùn)。
第 1 章 Java 咖啡真好喝
1.1 Java 語言與(爪哇)咖啡 / 2
1.2 Java 語言的歷史 / 3
1.3 Java 語言的特點(diǎn) / 3
1.4 Java 平臺 / 5
1.4.1 Java SE / 5
1.4.2 Java EE / 5
1.4.3 Java ME / 5
1.5 Java 虛擬機(jī) / 6
同步練習(xí)題 / 7
第 2 章 磨刀不誤砍柴工 / 8
Java 環(huán)境搭建
2.1 下載和安裝JDK / 9
2.1 配置JDK / 10
2.1 測試環(huán)境 / 14
同步練習(xí)題 / 15
第3 章 光說不練假把式
第 一個Java 應(yīng)用程序 / 16
3.1 使用文本編輯工具編寫HelloWorld 程序 / 17
3.1.1 用記事本編寫Java 應(yīng)用程序 / 17
3.1.2 編譯和運(yùn)行Java 應(yīng)用程序 / 18
3.2 專業(yè)項(xiàng)目開發(fā)工具IntelliJ IDEA / 20
3.2.1 下載和安裝IntelliJ IDEA / 21
3.2.2 配置IntelliJ IDEA / 22
3.2.3 使用IntelliJ IDEA 編寫和運(yùn)行
Java 應(yīng)用程序 / 23
3.3 解釋代碼 / 27
同步練習(xí)題 / 30
第4 章 萬丈高樓平地起
Java 語法基礎(chǔ) / 31
4.1 關(guān)鍵字和保留字 / 32
4.2 標(biāo)識符 / 33
4.3 Java 分隔符 / 33
4.3.1 分號 / 34
4.3.2 大括號 / 34
4.3.3 空白 / 35
4.4 注釋 / 35
4.4.1 單行注釋 / 35
4.4.2 多行注釋 / 36
4.4.3 文檔注釋 / 36
4.5 變量 / 37
4.6 常量 / 38
4.7 Java 源代碼的組織方式 / 39
4.7.1 Java 源代碼文件 / 39
4.7.2 包 / 40
同步練習(xí)題 / 42
第5 章 掐指一算
運(yùn)算符 / 43
5.1 算術(shù)運(yùn)算符 / 44
5.1.1 一元運(yùn)算符 / 44
5.1.2 二元運(yùn)算符 / 45
5.2 關(guān)系運(yùn)算符 46
5.3 邏輯運(yùn)算符 48
5.4 位運(yùn)算符 / 50
5.5 賦值運(yùn)算符 / 52
5.6 運(yùn)算符的優(yōu)先級 / 53
同步練習(xí)題 / 54
第6 章 一大波數(shù)據(jù)向你走來
Java 數(shù)據(jù)類型 / 56
6.1 基本數(shù)據(jù)類型 57
6.1.1 整數(shù)類型 / 58
6.1.2 浮點(diǎn)類型 / 59
6.1.3 字符類型 / 60
6.1.4 布爾類型 / 62
6.2 數(shù)值類型數(shù)據(jù)的轉(zhuǎn)換 / 63
6.2.1 自動類型轉(zhuǎn)換 / 63
6.2.2 強(qiáng)制類型轉(zhuǎn)換 / 64
6.3 引用數(shù)據(jù)類型 / 66
同步練習(xí)題 / 68
第7 章 把數(shù)據(jù)集中管理起來
數(shù)組 / 69
7.1 聲明數(shù)組 / 70
7.2 數(shù)組初始化 / 70
7.3 訪問數(shù)組元素 / 72
7.4 多維數(shù)組 / 73
7.4.1 二維數(shù)組的聲明 / 73
7.4.2 二維數(shù)組的初始化 / 73
同步練習(xí)題 / 76
第8 章 字符串,“好吃”嗎?
字符串 / 77
8.1 字符串表示形式 / 78
8.2 不可變字符串 / 79
8.2.1 字符串拼接 / 81
8.2.2 字符串查找 / 82
8.2.3 字符串比較 / 85
8.2.4 字符串截取 / 87
8.3 可變字符串 / 88
8.3.1 字符串追加 / 89
8.3.2 字符串插入、刪除和替換 / 90
同步練習(xí)題 / 92
第9 章 讓程序?qū)W會思考
判斷語句 / 93
9.1 if 語句 / 94
9.1.1 if 結(jié)構(gòu) / 94
9.1.2 if-else 結(jié)構(gòu) / 96
9.1.3 if-else-if 結(jié)構(gòu) / 97
9.2 switch 語句 / 98
同步練習(xí)題 / 101
第 10 章 別轉(zhuǎn)圈了,我都懵了
循環(huán)語句 / 102
10.1 循環(huán)語句 / 103
10.1.1 while 語句 / 103
10.1.2 do-while 語句 / 104
10.2 for 語句 / 105
10.2.1 Java 語言風(fēng)格的for 循環(huán) / 105
10.2.2 C 語言風(fēng)格的for 循環(huán) / 106
10.3 跳轉(zhuǎn)語句 / 108
10.3.1 break 語句 / 108
10.3.2 continue 語句 / 110
同步練習(xí)題 / 112
第 11 章 我喜歡“對象”
Java 面向?qū)ο缶幊袒A(chǔ) / 113
11.1 面向?qū)ο蟮母拍?/ 114
11.2 定義類 / 115
11.2.1 成員變量 / 116
11.2.2 成員方法 / 116
11.3 方法重載 / 118
11.4 對象 / 120
11.4.1 創(chuàng)建對象 / 120
11.4.2 空對象 / 121
11.4.3 對象銷毀 / 121
11.5 構(gòu)造方法 / 122
11.5.1 默認(rèn)構(gòu)造方法 / 123
11.5.2 構(gòu)造方法重載 / 124
11.6 類的封裝性 / 126
11.6.1 私有級別 / 126
11.6.2 默認(rèn)級別 / 128
11.6.3 公有級別 / 129
11.6.4 保護(hù)級別 / 130
11.7 類變量和類方法 / 133
11.8 靜態(tài)代碼塊 / 135
同步練習(xí)題 / 137
第 12 章 那些“燒腦”的面向?qū)ο?知識
Java 面向?qū)ο缶幊踢M(jìn)階 / 138
12.1 類的繼承性 / 139
12.2 抽象類 / 143
12.3 接口 / 145
12.4 多態(tài)性 / 146
12.4.1 對象類型檢查 / 147
12.4.2 對象類型轉(zhuǎn)換 / 149
12.5 內(nèi)部類 / 151
同步練習(xí)題 / 155
第 13 章 我不喜歡“抽象的”函數(shù)
Java 函數(shù)式編程 / 156
13.1 函數(shù)式接口 / 157
13.2 Lambda 表達(dá)式 / 160
同步練習(xí)題 / 163
第 14 章 一次郊游引發(fā)的意外
異常處理 / 164
14.1 理解Java 中的異常 / 165
14.1.1 分析異常棧跟蹤信息 / 167
14.1.2 好大一棵“異常樹” / 168
14.2 捕獲異常 / 169
14.3 釋放資源 / 171
14.4 聲明方法拋出異常 / 174
同步練習(xí)題 / 177
第 15 章 上級來文件了
訪問文件 / 179
15.1 文件管理 / 180
15.2 I/O 流 / 184
15.3 字節(jié)流 / 184
15.3.1 字節(jié)輸入流類的繼承樹 / 184
15.3.2 字節(jié)輸出流類的繼承樹 / 185
15.3.3 實(shí)踐一下:文件復(fù)制工具 / 186
15.4 字符流 / 190
15.4.1 字符輸入流類的繼承樹 / 190
15.4.2 字符輸出流類的繼承樹 / 191
15.4.3 實(shí)踐一下:使用字符流重構(gòu)文件
復(fù)制工具 / 192
15.5 中介流 / 194
同步練習(xí)題 / 198
第 16 章 我要上網(wǎng)
Java 互聯(lián)網(wǎng)編程 / 200
16.1 網(wǎng)絡(luò)基礎(chǔ)知識 / 201
16.1.1 HTTP/HTTPS 協(xié)議 / 201
16.1.2 什么是URL / 202
16.2 Java 訪問互聯(lián)網(wǎng)資源的相關(guān)類 / 202
16.2.1 URL 類 / 202
16.2.2 HttpURLConnection 類 / 204
16.2.3 實(shí)踐一下:圖片下載器 / 206
同步練習(xí)題 / 212
第 17 章 快到碗里來
集合 / 213
17.1 Java 集合繼承樹 / 214
17.2 List / 214
17.2.1 List 的常用方法 / 215
17.2.2 遍歷List / 218
17.3 Set / 220
17.3.1 Set 的常用方法 / 220
17.3.2 遍歷Set / 222
17.4 Map / 223
17.4.1 Map 的常用方法 / 223
17.4.2 遍歷Map / 225
17.5 泛型 / 227
同步練習(xí)題 / 232
第 18 章 我討厭那個黑乎乎的窗口
圖形用戶界面編程 / 233
18.1 Swing 技術(shù)概述 / 234
18.2 你的第 一個Java GUI 程序 / 235
18.3 添加更多組件 / 236
18.4 事件處理機(jī)制 / 238
18.4.1 遍歷Set / 238
18.4.2 事件處理流程 / 239
18.4.3 實(shí)踐一下:事件處理示例 / 241
18.4.4 使用匿名內(nèi)部類實(shí)現(xiàn)事件
監(jiān)聽器 / 242
18.4.5 使用匿名內(nèi)部類實(shí)現(xiàn)事件
監(jiān)聽器 / 243
18.5 布局管理 / 245
18.5.1 流式布局 / 245
18.5.2 邊界布局 / 247
18.5.3 網(wǎng)格布局 / 248
18.5.4 使用可視化設(shè)計工具 / 250
18.6 常用的Swing 組件 / 253
18.6.1 文本輸入組件 / 253
18.6.2 收音機(jī)按鈕 / 255
18.6.3 復(fù)選框 / 259
18.6.4 列表 / 261
同步練習(xí)題 / 263
第 19 章 我要同時做幾件事情
多線程編程 / 264
19.1 線程的相關(guān)概念 / 265
19.1.1 進(jìn)程 / 265
19.1.2 線程 / 265
19.1.3 主線程 / 266
19.2 子線程 / 266
19.2.1 創(chuàng)建子線程 / 267
19.2.2 線程執(zhí)行對象 / 267
19.2.3 使用匿名內(nèi)部類實(shí)現(xiàn)線程執(zhí)行
對象 / 270
19.2.4 使用Lambda 表達(dá)式實(shí)現(xiàn)線程
執(zhí)行對象 / 270
19.2.5 簡化!再簡化! / 271
19.3 線程的狀態(tài) / 273
19.4 線程管理 / 274
19.4.1 死循環(huán)與“勞模”線程 / 274
19.4.2 “ 軟著陸”停止線程 / 275
19.4.3 我等你,不見不散——等待
其他線程結(jié)束 / 277
19.5 線程的安全 / 279
19.5.1 “ 吃蘋果”問題 / 280
19.5.2 線程同步 / 283
同步練習(xí)題 / 286
第 20 章 項(xiàng)目實(shí)戰(zhàn):
Java 網(wǎng)絡(luò)爬蟲技術(shù)
網(wǎng)絡(luò)圖片爬蟲 / 287
20.1 爬蟲如何修煉 / 288
20.2 青銅級爬蟲:爬取數(shù)據(jù) / 288
20.3 白銀級爬蟲:解析數(shù)據(jù) / 291
20.3.1 使用正則表達(dá)式 / 292
20.3.2 下載和安裝jsoup 庫 / 296
20.3.3 jsoup 庫的基本用法——
常用API / 297
20.4 黃金級爬蟲:存儲數(shù)據(jù) / 300
20.5 鉑金級爬蟲:爬蟲工作計劃 / 305
20.6 鉆石級爬蟲:最終修煉完成 / 308
同步練習(xí)題答案