注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計JAVA及其相關(guān)瘋狂Java:突破程序員基本功的16課

瘋狂Java:突破程序員基本功的16課

瘋狂Java:突破程序員基本功的16課

定 價:¥59.00

作 者: 李剛 編著
出版社: 人民郵電出版社
叢編項:
標 簽: J2EE

ISBN: 9787115221681 出版時間: 2010-05-01 包裝: 平裝
開本: 16開 頁數(shù): 454 字數(shù):  

內(nèi)容簡介

  《瘋狂Java:突破程序員基本功的16課》是著名Java領(lǐng)域研究專家、Java語言培訓大師、“瘋狂Java”創(chuàng)始人李剛老師的又一傾心力作。在《瘋狂Java:突破程序員基本功的16課》中,李剛老師一改枯燥的教學方式,專門面向Java初學者可能會遇到的各種學習問題,由點及面,詳細討論了Java內(nèi)存管理、Java編程過程中常遇陷阱、常用數(shù)據(jù)結(jié)構(gòu)的Java實現(xiàn)和Java程序開發(fā)的方法與經(jīng)驗等內(nèi)容。這些問題,看似“司空見慣”,實際上卻是很多Java初學者在初學階段都會遇到的問題和疑難。李剛老師在《瘋狂Java:突破程序員基本功的16課》中,正是試圖為讀者們展現(xiàn)出這些疑點、難點的實質(zhì),讓讀者能在瞬息之間,徹底掌握住這門語言的“內(nèi)功心法”。這不是一本包容了所有技術(shù)細節(jié)的手冊,而是一本Java前輩對于晚輩們的提點和教導。書中很多內(nèi)容,是李剛老師和他的眾多學子曾親身體驗過的桎梏,非常具有參考意義?!动偪馢ava:突破程序員基本功的16課》承載了無數(shù)前輩的諄諄教導之言,向你展示著一個痛并快樂著的Java世界。

作者簡介

暫缺《瘋狂Java:突破程序員基本功的16課》作者簡介

圖書目錄

第1課 數(shù)組與內(nèi)存控制 1
1.1 數(shù)組初始化 2
1.1.1 Java數(shù)組是靜態(tài)的 2
1.1.2 數(shù)組一定要初始化嗎 5
1.1.3 基本類型數(shù)組的初始化 6
1.1.4 引用類型數(shù)組的初始化 8
1.2 使用數(shù)組 11
1.2.1 數(shù)組元素就是變量 11
1.2.2 沒有多維數(shù)組 13
1.3 小結(jié) 18
第2課 對象與內(nèi)存控制 19
2.1 實例變量和類變量 20
2.1.1 實例變量和類變量的屬性 21
2.1.2 實例變量的初始化時機 24
2.1.3 類變量的初始化時機 27
2.2 父類構(gòu)造器 29
2.2.1 隱式調(diào)用和顯式調(diào)用 29
2.2.2 訪問子類對象的實例變量 32
2.2.3 調(diào)用被子類重寫的方法 34
2.3 父子實例的內(nèi)存控制 36
2.3.1 繼承成員變量和繼承方法的區(qū)別 36
2.3.2 內(nèi)存中子類實例 39
2.3.3 父、子類的類變量 43
2.4 final修飾符 44
2.4.1 final修飾的變量 44
2.4.2 執(zhí)行“宏替換”的變量 49
2.4.3 final方法不能被重寫 53
2.4.4 內(nèi)部類中的局部變量 55
2.5 小結(jié) 58
第3課 常見Java集合的實現(xiàn)細節(jié) 59
3.1 Set和Map 60
3.1.1 Set和Map的關(guān)系 60
3.1.2 HashMap和HashSet 65
3.1.3 TreeMap和TreeSet 75
3.2 Map和List 80
3.2.1 Map的values()方法 81
3.2.2 Map和List的關(guān)系 87
3.3 ArrayList和LinkedList 88
3.3.1 Vector和ArrayList的區(qū)別 89
3.3.2 ArrayList和LinkedList的實現(xiàn)差異 92
3.3.3 ArrayList和LinkedList的性能分析和適用場景 96
3.4 Iterator迭代器 96
3.5 小結(jié) 100
第4課 Java的內(nèi)存回收 101
4.1 Java引用的種類 102
4.1.1 對象在內(nèi)存中狀態(tài) 102
4.1.2 強引用 105
4.1.3 軟引用 105
4.1.4 弱引用 108
4.1.5 虛引用 111
4.2 Java的內(nèi)存泄漏 112
4.3 垃圾回收機制 116
4.3.1 垃圾回收的基本算法 116
4.3.2 堆內(nèi)存的分代回收 118
4.3.3 與垃圾回收的附加選項 119
4.3.4 常見垃圾回收器 120
4.4 內(nèi)存管理的小技巧 123
4.4.1 盡量使用直接量 123
4.4.2 使用StringBuilder和StringBuffer進行字符串連接 123
4.4.3 盡早釋放無用對象的引用 124
4.4.4 盡量少用靜態(tài)變量 124
4.4.5 避免在經(jīng)常調(diào)用的方法、循環(huán)中創(chuàng)建Java對象 125
4.4.6 緩存經(jīng)常使用的對象 125
4.4.7 盡量不要使用finalize方法 126
4.4.8 考慮使用SoftReference 126
4.5 小結(jié) 126
第5課 表達式中的陷阱 127
5.1 關(guān)于字符串的陷阱 128
5.1.1 JVM對字符串的處理 128
5.1.2 不可變的字符串 131
5.1.3 字符串比較 133
5.2 表達式類型的陷阱 135
5.2.1 表達式類型的自動提升 135
5.2.2 復合賦值運算符的陷阱 136
5.3 輸入法導致的陷阱 138
5.4 注釋的字符必須合法 138
5.5 轉(zhuǎn)義字符的陷阱 139
5.5.1 慎用字符的Unicode轉(zhuǎn)義形式 139
5.5.2 中止行注釋的轉(zhuǎn)義字符 140
5.6 泛型可能引起的錯誤 141
5.6.1 原始類型變量的賦值 141
5.6.2 原始類型帶來的擦除 143
5.6.3 創(chuàng)建泛型數(shù)組的陷阱 145
5.7 正則表達式的陷阱 147
5.8 多線程的陷阱 148
5.8.1 不要調(diào)用run方法 148
5.8.2 靜態(tài)的同步方法 150
5.8.3 靜態(tài)初始化塊啟動新線程執(zhí)行初始化 152
5.8.4 注意多線程執(zhí)行環(huán)境 157
5.9 小結(jié) 161
第6課 流程控制的陷阱 163
6.1 switch語句陷阱 164
6.1.1 default分支永遠會執(zhí)行嗎 164
6.1.2 break的重要性 165
6.1.3 switch表達式的類型 167
6.2 標簽引起的陷阱 168
6.3 if語句的陷阱 169
6.3.1 else隱含的條件 169
6.3.2 小心空語句 171
6.4 循環(huán)體的花括號 173
6.4.1 什么時候可以省略花括號 173
6.4.2 省略花括號的危險 174
6.5 for循環(huán)的陷阱 175
6.5.1 分號惹的禍 175
6.5.2 小心循環(huán)計數(shù)器的值 178
6.5.3 浮點數(shù)作循環(huán)計數(shù)器 179
6.6 foreach循環(huán)的循環(huán)計數(shù)器 181
6.7 小結(jié) 182
第7課 面向?qū)ο蟮南葳?183
7.1 instanceof運算符的陷阱 184
7.2 構(gòu)造器的陷阱 188
7.2.1 構(gòu)造器之前的void 188
7.2.2 構(gòu)造器創(chuàng)建對象嗎 189
7.2.3 無限遞歸的構(gòu)造器 194
7.3 持有當前類的實例 195
7.4 到底調(diào)用哪個重載的方法 196
7.5 方法重寫的陷阱 199
7.5.1 重寫private方法 199
7.5.2 重寫其他訪問權(quán)限的方法 200
7.6 非靜態(tài)內(nèi)部類的陷阱 201
7.6.1 非靜態(tài)內(nèi)部類的構(gòu)造器 201
7.6.2 非靜態(tài)內(nèi)部類不能擁有靜態(tài)成員 203
7.6.3 非靜態(tài)內(nèi)部類的子類 204
7.7 static關(guān)鍵字 206
7.7.1 靜態(tài)方法屬于類 206
7.7.2 靜態(tài)內(nèi)部類的限制 207
7.8 native方法的陷阱 208
7.9 小結(jié) 209
第8課 異常捕捉的陷阱 211
8.1 正確關(guān)閉資源的方式 212
8.2 finally塊的陷阱 215
8.2.1 finally的執(zhí)行規(guī)則 215
8.2.2 finally塊和方法返回值 217
8.3 catch塊的用法 219
8.3.1 catch塊的順序 219
8.3.2 不要用catch代替流程控制 221
8.3.3 只能catch可能拋出的異常 221
8.3.4 實際的修復 225
8.4 繼承得到的異常 227
8.5 小結(jié) 228
第9課 線性表 229
9.1 線性表概述 230
9.1.1 線性表的定義及邏輯結(jié)構(gòu) 230
9.1.2 線性表的基本操作 231
9.2 順序存儲結(jié)構(gòu) 231
9.3 鏈式存儲結(jié)構(gòu) 236
9.3.1 單鏈表上的基本運算 237
9.3.2 循環(huán)鏈表 243
9.3.3 雙向鏈表 244
9.4 線性表的分析 251
9.4.1 線性表的實現(xiàn)分析 251
9.4.2 線性表的功能 251
9.5 小結(jié) 252
第10課 棧和隊列 253
10.1 棧 254
10.1.1 棧的基本定義 254
10.1.2 棧的常用操作 254
10.1.3 棧的順序存儲結(jié)構(gòu)及實現(xiàn) 255
10.1.4 棧的鏈式存儲結(jié)構(gòu)及實現(xiàn) 259
10.1.5 Java集合中的棧 263
10.2 隊列 263
10.2.1 隊列的基本定義 263
10.2.2 隊列的常用操作 264
10.2.3 隊列的順序存儲結(jié)構(gòu)及實現(xiàn) 264
10.2.4 循環(huán)隊列 268
10.2.5 隊列的鏈式存儲結(jié)構(gòu)及實現(xiàn) 272
10.2.6 Java集合中的隊列 275
10.3 雙向隊列 276
10.4 小結(jié) 278
第11課 樹和二叉樹 279
11.1 樹的概述 280
11.1.1 樹的定義和基本術(shù)語 280
11.1.2 樹的基本操作 281
11.1.3 父節(jié)點表示法 282
11.1.4 子節(jié)點鏈表示法 286
11.2 二叉樹 290
11.2.1 二叉樹的定義和基本概念 290
11.2.2 二叉樹的基本操作 292
11.2.3 二叉樹的順序存儲 292
11.2.4 二叉樹的二叉鏈表存儲 296
11.2.5 二叉樹的三叉鏈表存儲 299
11.3 遍歷二叉樹 303
11.3.1 先序遍歷 303
11.3.2 中序遍歷 304
11.3.3 后序遍歷 304
11.3.4 廣度優(yōu)先(按層)遍歷 305
11.4 森林、樹和二叉樹的轉(zhuǎn)換 306
11.4.1 森林、樹和二叉樹的轉(zhuǎn)換 306
11.4.2 樹的鏈表存儲 307
11.5 哈夫曼樹 307
11.5.1 哈夫曼樹的定義和基本概念 307
11.5.2 創(chuàng)建哈夫曼樹 308
11.5.3 哈夫曼編碼 311
11.6 排序二叉樹 312
11.7 紅黑樹 319
11.7.1 插入操作 321
11.7.2 刪除操作 322
11.8 小結(jié) 332
第12課 常用的內(nèi)部排序 333
12.1 排序的基本概念 334
12.1.1 排序概述 334
12.1.2 內(nèi)部排序的分類 335
12.2 選擇排序法 335
12.2.1 直接選擇排序 335
12.2.2 堆排序 339
12.3 交換排序 343
12.3.1 冒泡排序 343
12.3.2 快速排序 345
12.4 插入排序 347
12.4.1 直接插入排序 347
12.4.2 折半插入排序 349
12.4.3 Shell排序 351
12.5 歸并排序 353
12.6 桶式排序 357
12.7 基數(shù)排序 359
12.8 小結(jié) 362
第13課 程序開發(fā) 363
13.1 扎實的基本功 364
13.1.1 快速的輸入能力 364
13.1.2 編程實現(xiàn)能力 365
13.1.3 快速排錯 366
13.2 程序開發(fā)之前 366
13.2.1 分析軟件的組件模型 366
13.2.2 建立軟件的數(shù)據(jù)模型 369
13.3 弄清程序的具體實現(xiàn) 370
13.3.1 各組件如何通信 370
13.3.2 人機交互的實現(xiàn) 372
13.3.3 復雜算法的分析 374
13.4 編寫開發(fā)文檔 377
13.4.1 繪制建模圖、流程圖 377
13.4.2 提供簡要說明 378
13.4.3 編寫偽碼實現(xiàn) 379
13.5 編碼實現(xiàn)和開發(fā)心態(tài) 379
13.5.1 開發(fā)是復雜的 379
13.5.2 開發(fā)過程是漫長的 380
13.6 小結(jié) 380
第14課 程序調(diào)試 381
14.1 程序的可調(diào)試性 382
14.1.1 增加注釋 382
14.1.2 使用log 382
14.2 程序調(diào)試的基本方法 390
14.2.1 借助編譯器的代碼審查 390
14.2.2 跟蹤程序執(zhí)行流程 392
14.2.3 斷點調(diào)試 394
14.2.4 隔離調(diào)試 395
14.2.5 錯誤重現(xiàn) 397
14.3 記錄常見錯誤 398
14.3.1 常見異常可能的錯誤原因 399
14.3.2 常見運行時異??赡艿腻e誤原因 400
14.4 程序調(diào)試的整體思路 402
14.4.1 分段調(diào)試 402
14.4.2 分模塊調(diào)試 403
14.5 調(diào)試心態(tài) 403
14.5.1 誰都會出錯 403
14.5.2 調(diào)試比寫程序更費時 404
14.6 小結(jié) 404
第15課 使用IDE工具 405
15.1 何時開始利用IDE工具 406
15.2 IDE工具概述 407
15.2.1 IDE工具的基本功能 407
15.2.2 常見的Java IDE工具 409
15.3 項目管理 412
15.3.1 建立項目 412
15.3.2 自動編譯 416
15.3.3 自動部署、運行 417
15.4 代碼管理 418
15.4.1 向?qū)降拇a生成 418
15.4.2 代碼生成器 420
15.4.3 代碼提示 421
15.4.4 自動代碼補齊 422
15.4.5 實時錯誤提示 422
15.5 項目調(diào)試 423
15.5.1 設(shè)置斷點 424
15.5.2 單步調(diào)試 426
15.5.3 步入、步出 426
15.6 團隊協(xié)作功能 427
作為版本控制工具的客戶端 428
15.7 小結(jié) 431
第16課 軟件測試 433
16.1 軟件測試概述 434
16.1.1 軟件測試的概念和目的 434
16.1.2 軟件測試的分類 436
16.1.3 開發(fā)活動和測試活動 436
16.1.4 常見Bug管理工具 437
16.2 單元測試 438
16.2.1 單元測試概述 438
16.2.2 單元測試的邏輯覆蓋 439
16.2.3 JUnit介紹 442
16.2.4 JUnit的用法 443
16.3 系統(tǒng)測試和自動化測試 448
16.3.1 系統(tǒng)測試概述 448
16.3.2 自動化測試 449
16.3.3 常見自動化測試工具 450
16.4 性能測試 451
16.4.1 性能測試概述 451
16.4.2 性能測試的相關(guān)概念 452
16.4.3 常見性能測試工具 453
16.5 小結(jié) 453

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號