Java 核心技術 (捲一) : 基礎知識
內容描述
<內容簡介>
Java領域*有影響力和價值的著作之一,由擁有20多年教學與研究經驗的資深Java技術專家撰寫(獲Jolt大獎),與《Java編程思想》齊名,10餘年全球暢銷不衰,廣受好評。第10版根據Java SE 8全面更新,同時修正了第9版中的不足,系統全面講解了Java語言的核心概念、語法、重要特性和開發方法,包含大量案例,實踐性強。
本書共14章。第1章概述Java語言與其他程序設計語言不同的性能;第2章講解如何下載和安裝JDK及本書的程序示例;第3章介紹變量、循環和簡單的函數;第4章講解類和封裝;第5章介紹繼承;第6章解釋接口和內部類;第7章討論異常處理,並給出大量實用的調試技巧;第8章概要介紹泛型程序設計;第9章討論Java平臺的集合框架;第10章介紹GUI程序設計,討論如何建立窗口、如何在窗口中繪圖、如何利用幾何圖形繪圖、如何採用多種字體格式化文本,以及如何顯示圖像;第11章詳細討論抽象窗口工具包的事件模型;第12章詳細討論Swing GUI工具包;第13章介紹如何將程序部署為應用或applet;第14章討論並發。本書最後還有一個附錄,其中列出了Java語言的保留字。
<章節目錄>
譯者序
前言
致謝
第1章Java程序設計概述1
1.1 Java程序設計平臺1
1.2 Java“白皮書”的關鍵術語2
1.2.1簡單性2
1.2.2面向對象2
1.2.3分佈式3
1.2.4健壯性3
1.2.5安全性3
1.2.6體系結構中立4
1.2.7可移植性4
1.2.8解釋型5
1.2.9高性能5
1.2.10多線程5
1.2.11動態性5
1.3 Java applet與Internet 6
1.4 Java發展簡史7
1.5關於Java的常見誤解9
第2章Java程序設計環境12
2.1安裝Java開發工具包12
2.1.1下載JDK 12
2.1.2設置JDK 13
2.1.3安裝庫源文件和文檔15
2.2使用命令行工具16
2.3使用集成開發環境18
2.4運行圖形化應用程序21
2.5構建並運行applet 23
第3章Java的基本程序設計結構28
3.1一個簡單的Java應用程序28
3.2註釋31
3.3數據類型32
3.3.1整型32
3.3.2浮點類型33
3.3.3 char類型34
3.3.4 Unicode和char類型35
3.3.5 boolean類型35
3.4變量36
3.4.1變量初始化37
3.4.2常量37
3.5運算符38
3.5.1數學函數與常量39
3.5.2數值類型之間的轉換40
3.5.3強制類型轉換41
3.5.4結合賦值和運算符42
3.5.5自增與自減運算符42
3.5. 6關係和boolean運算符42
3.5.7位運算符43
3.5.8括號與運算符級別44
3.5.9枚舉類型45
3.6字符串45
3.6.1子串45
3.6.2拼接46
3.6.3不可變字符串46
3.6.4檢測字符串是否相等47
3.6.5空串與Null串48
3.6.6碼點與代碼單元49
3.6.7 String API 50
3.6.8閱讀聯機API文檔52
3.6.9構建字符串54
3.7輸入輸出55
3.7.1讀取輸入55
3.7.2格式化輸出58
3.7.3文件輸入與輸出61
3.8控制流程63
3.8.1塊作用域63
3.8.2條件語句63
3.8.3循環66
3.8 .4確定循環69
3.8.5多重選擇:switch語句72
3.8.6中斷控制流程語句74
3.9大數值76
3.10數組78
3.10.1 for each循環79
3.10.2數組初始化以及匿名數組80
3.10.3數組拷貝81
3.10.4命令行參數81
3.10.5數組排序82
3.10.6多維數組85
3.10.7不規則數組88
第4章對象與類91
4.1面向對象程序設計概述91
4.1.1類92
4.1.2對象93
4.1.3識別類93
4.1.4類之間的關係94
4.2使用預定義類95
4.2.1對象與對像變量95
4.2.2 Java類庫中的LocalDate類98
4.2.3更改器方法與訪問器方法100
4.3用戶自定義類103
4.3.1 Employee類103
4.3.2多個源文件的使用105
4.3.3剖析Employee類106
4.3.4從構造器開始106
4.3.5隱式參數與顯式參數108
4.3.6封裝的優點109
4.3.7基於類的訪問權限111
4.3.8私有方法111
4.3.9 f?inal實例域112
4.4靜態域與靜態方法112
4.4.1靜態域112
4.4.2靜態常量113
4.4.3靜態方法114
4.4.4工廠方法115
4.4.5 main方法115
4.5方法參數118
4.6對象構造123
4.6.1重載123
4.6.2默認域初始化123
4.6.3無參數的構造器124
4.6. 4顯式域初始化125
4.6.5參數名125
4.6.6調用另一個構造器126
4.6.7初始化塊127
4.6.8對象析構與f?inalize方法130
4.7包131
4.7.1類的導入131
4.7 .2靜態導入133
4.7.3將類放入包中133
4.7.4包作用域136
4.8類路徑137
4.8.1設置類路徑139
4.9文檔註釋140
4.9.1註釋的插入140
4.9.2類註釋140
4.9.3方法註釋141
4.9.4域註釋142
4.9.5通用註釋142
4.9.6包與概述註釋143
4.9.7註釋的抽取143
4.10類設計技巧144
第5章繼承147
5.1類、超類和子類147
5.1.1定義子類147
5.1.2覆蓋方法149
5.1.3子類構造器150
5.1.4繼承層次153
5.1.5多態154
5.1.6理解方法調用155
5.1.7阻止繼承:f? inal類和方法157
5.1.8強制類型轉換158
5.1.9抽像類160
5.1.10受保護訪問165
5.2 Object:所有類的超類166
5.2.1 equals方法166
5.2.2相等測試與繼承167
5.2. 3 hashCode方法170
5.2.4 toString方法172
5.3泛型數組列表178
5.3.1訪問數組列表元素180
5.3.2類型化與原始數組列表的兼容性183
5.4對象包裝器與自動裝箱184
5.5參數數量可變的方法187
5.6枚舉類188
5.7反射190
5.7.1 Class類190
5.7.2捕獲異常192
5.7.3利用反射分析類的能力194
5.7.4在運行時使用反射分析對象198
5.7.5使用反射編寫泛型數組代碼202
5.7.6調用任意方法205
5.8繼承的設計技巧208
第6章接口、lambda表達式與內部類211
6.1接口211
6.1.1接口概念211
6.1.2接口的特性217
6.1.3接口與抽像類218
6.1.4靜態方法218
6.1.5默認方法219
6.1.6解決默認方法衝突220
6.2接口示例222
6.2.1接口與回調222
6.2.2 Comparator接口224
6.2.3對象克隆225
6.3 lambda表達式231
6.3.1為什麼引入lambda表達式231
6.3.2 lambda表達式的語法232
6.3.3函數式接口234
6.3.4方法引用235
6.3.5構造器引用237
6.3.6變量作用域237
6.3. 7處理lambda表達式239
6.3.8再談Comparator 242
6.4內部類242
6.4.1使用內部類訪問對象狀態244
6.4.2內部類的特殊語法規則247
6.4.3內部類是否有用、必要和安全248
6.4 .4局部內部類250
6.4.5由外部方法訪問變量250
6.4.6匿名內部類252
6.4.7靜態內部類255
6.5代理258
6.5.1何時使用代理259
6.5.2創建代理對象259
6.5.3代理類的特性262
第7章異常、斷言和日誌264
7.1處理錯誤264
7.1.1異常分類265
7.1.2聲明受查異常267
7.1.3如何拋出異常269
7.1.4創建異常類270
7.2捕獲異常271
7.2.1捕獲異常271
7.2.2捕獲多個異常273
7.2.3再次拋出異常與異常鏈274
7.2.4 f?inally子句275
7.2.5帶資源的try語句278
7.2.6分析堆棧軌跡元素280
7.3使用異常機制的技巧282
7.4使用斷言285
7.4.1斷言的概念285
7.4.2啟用和禁用斷言286
7.4.3使用斷言完成參數檢查287
7.4.4為文檔假設使用斷言288
7.5記錄日誌289
7.5.1基本日誌289
7.5.2高級日誌289
7.5.3修改日誌管理器配置291
7.5.4本地化292
7.5.5處理器293
7.5.6過濾器296
7.5.7格式化器296
7.5.8日誌記錄說明296
7.6調試技巧304
第8章泛型程序設計309
8.1為什麼要使用泛型程序設計309
8.1.1類型參數的好處309
8.1.2誰想成為泛型程序員310
8.2定義簡單泛型類311
8.3泛型方法313
8.4類型變量的限定314
8.5泛型代碼和虛擬機316
8.5.1類型擦除316
8.5.2翻譯泛型表達式317
8.5.3翻譯泛型方法318
8.5.4調用遺留代碼319
8.6約束與局限性320
8.6.1不能用基本類型實例化類型參數320
8.6.2運行時類型查詢只適用於原始類型321
8.6.3不能創建參數化類型的數組321
8.6.4 Varargs警告322
8.6. 5不能實例化類型變量323
8.6.6不能構造泛型數組323
8.6.7泛型類的靜態上下文中類型變量無效325
8.6.8不能拋出或捕獲泛型類的實例325
8.6.9可以消除對受查異常的檢查326
8.6.10註意擦除後的衝突327
8.7泛型類型的繼承規則328
8.8通配符類型330
8.8.1通配符概念330
8.8.2通配符的超類型限定331
8.8.3無限定通配符334
8.8.4通配符捕獲334
8.9反射和泛型337
8.9.1泛型Class類337
8.9.2使用Class參數進行類型匹配338
8.9.3虛擬機中的泛型類型信息338
第9章集合344
9.1 Java集合框架344
9.1.1將集合的接口與實現分離344
9.1.2 Collection接口346
9.1.3迭代器347
9.1.4泛型實用方法349
9.1.5集合框架中的接口352
9.2具體的集合353
9.2.1鍊錶355
9.2.2數組列表362
9.2.3散列集363
9.2.4樹集366
9.2.5隊列與雙端隊列369
9.2.6優先級隊列371
9.3映射372
9.3.1基本映射操作372
9.3.2更新映射項375
9.3.3映射視圖376
9.3.4弱散列映射377
9.3.5鏈接散列集與映射378
9.3.6枚舉集與映射379
9.3.7標識散列映射380
9.4視圖與包裝器381
9.4.1輕量級集合包裝器382
9.4.2子範圍382
9.4.3不可修改的視圖383
9.4.4同步視圖384
9.4.5受查視圖384
9.4.6關於可選操作的說明385
9.5算法388
9.5.1排序與混排389
9.5.2二分查找391
9.5.3簡單算法392
9.5.4批操作394
9.5.5集合與數組的轉換394
9.5.6編寫自己的算法395
9.6遺留的集合396
9.6 .1 Hashtable類397
9.6.2枚舉397
9.6.3屬性映射398
9.6.4棧399
9.6.5位集399
第10章圖形程序設計403
10.1 Swing概述403
10.2創建框架407
10.3框架定位409
10.3.1框架屬性411
10.3.2確定合適的框架大小411
10.4在組件中顯示信息415
10.5處理2D圖形419
10.6使用顏色426
10.7文本使用特殊字體429
10.8顯示圖像435
第11章事件處理439
11.1事件處理基礎439
11.1 .1實例:處理按鈕點擊事件441
11.1.2簡潔地指定監聽器445
11.1.3實例:改變觀感447
11.1.4適配器類450
11.2動作453
11.3鼠標事件459
11.4 AWT事件繼承層次465
11.4.1語義事件和底層事件466
第12章Swing用戶界面組件469
12.1 Swing和模型–視圖–控制器設計模式469
12.2佈局管理概述474
12.3文本輸入481
12.4選擇組件488
12.5菜單504
12.6複雜的佈局管理518
12.7對話框541
12.8 GUI程序排錯573
第13章部署Java應用程序580
13.1 JAR文件580
13.2應用首選項的存儲586
13.3服務加載器596
13.4 applet 598
13.5 Java Web Start 614
第14章並發624
14.1什麼是線程624
14.2中斷線程632
14.3線程狀態635
14.4線程屬性638
14.5同步640
14.6阻塞隊列668
14.7線程安全的集合673
14.8 Callable與Future 681
14.9執行器685
14.10同步器696
14.11線程與Swing 698
附錄A Java關鍵字710