Java 9編程參考官方大全(第10版) Java 9编程参考官方大全(第10版)

郝伯特·希爾德特 (Herbert Schildt)

買這商品的人也買了...

商品描述

● 數據類型、變量、數組和運算符

● 控制語句

● 類、對象和方法

● 方法重載和重寫

● 繼承

● 接口和包

● 異常處理

● 多線程編程

● 枚舉、自動裝箱和註解

● I/O類

● 泛型

● lambda表達式

● 模塊

● 字符串處理

● 集合框架

● 聯網

● 事件處理

● AWT

● Swing和JavaFX

● 並發API

● 流API

● 正則表達式

● Java Bean

● servlet

作者簡介

Herbert Schildt是一位暢銷書作家,在幾乎30年的時間裡,他撰寫了大量關於編程的圖書。

 

Herbert是Java語言的權#。他撰寫的編程書籍在世界範圍內銷售了數百萬冊,並且已經被翻譯成所有主要的非英語語言。

 

他撰寫了大量Java方面的書籍,包括Java:A Beginner's Guide、Herb Schildt's Java Programming Cookbook、

Introducing JavaFX 8 Programming和Swing:A Beginner's Guide,還撰寫了許多關於C、C++和C#的圖書。

 

儘管對計算機的所有方面都感興趣,但是他主要關注計算機語言。

 

Schildt獲得了美國伊利諾伊大學的本科和研究生學位。他的個人網站是www.HerbSchildt.com。

目錄大綱

第Ⅰ部分 Java語言

第1章 Java的歷史和演變 3

1.1 Java的家世 3

1.1.1 現代編程語言的誕生:C語言 3

1.1.2 C++:下一個階段 4

1.1.3 Java出現的時機已經成熟 4

1.2 Java的誕生 5

1.3 Java改變Internet的方式 6

1.3.1 Java applet 6

1.3.2 安全性 6

1.3.3 可移植性 6

1.4 Java的魔力:字節碼 7

1.5 不再推薦使用applet 7

1.6 servlet:服務器端的Java 8

1.7 Java的關鍵特性 8

1.7.1 簡單性 8

1.7.2 面向對象 8

1.7.3 健壯性 8

1.7.4 多線程 9

1.7.5 體系結構中立 9

1.7.6 解釋執行和高性能 9

1.7.7 分佈式 9

1.7.8 動態性 9

1.8 Java的演變歷程 9

1.9 Java SE 9 11

1.10 文化革新 12

第2章 Java綜述 13

2.1 面向對象編程 13

2.1.1 兩種範式 13

2.1.2 抽象 13

2.1.3 OOP三原則 14

2.2 第#個簡單程序 16

2.2.1 輸入程序 17

2.2.2 編譯程序 17

2.2.3 深入分析第#個示例程序 17

2.3 第#個簡短程序 19

2.4 兩種控制語句 20

2.4.1 if語句 20

2.4.2 for循環 21

2.5 使用代碼塊 22

2.6 詞彙問題 23

2.6.1 空白符 23

2.6.2 標識符 23

2.6.3 字面值 23

2.6.4 註釋 23

2.6.5 分隔符 23

2.6.6 Java關鍵字 24

2.7 Java類庫 24

第3章 數據類型、變量和數組 25

3.1 Java是強類型化的語言 25

3.2 基本類型 25

3.3 整型 25

3.3.1 byte 26

3.3.2 short 26

3.3.3 int 26

3.3.4 long 26

3.4 浮點型 27

3.4.1 float 27

3.4.2 double 27

3.5 字符型 27

3.6 布爾型 29

3.7 深入分析字面值 29

3.7.1 整型字面值 29

3.7.2 浮點型字面值 30

3.7.3 布爾型字面值 30

3.7.4 字符型字面值 31

3.7.5 字符串字面值 31

3.8 變量 31

3.8.1 變量的聲明 31

3.8.2 動態初始化 32

3.8.3 變量的作用域和生存期 32

3.9 類型轉換和強制類型轉換 34

3.9.1 Java的自動類型轉換 34

3.9.2 強制轉換不兼容的類型 34

3.10 表達式中的自動類型提升 35

3.11 數組 36

3.11.1 一維數組 36

3.11.2 多維數組 38

3.11.3 另一種數組聲明語法 41

3.12 關於字符串的一些說明 41

第4章 運算符 43

4.1 算術運算符 43

4.1.1 基本算術運算符 43

4.1.2 求模運算符 44

4.1.3 算術與賦值複合運算符 44

4.1.4 自增與自減運算符 45

4.2 位運算符 46

4.2.1 位邏輯運算符 47

4.2.2 左移 49

4.2.3 右移 50

4.2.4 無符號右移 51

4.2.5 位運算符與賦值的組合 52

4.3 關係運算符 52

4.4 布爾邏輯運算符 53

4.5 賦值運算符 54

4.6 “?”運算符 55

4.7 運算符的優先級 55

4.8 使用圓括號 56

第5章 控制語句 57

5.1 Java的選擇語句 57

5.1.1 if語句 57

5.1.2 switch語句 59

5.2 迭代語句 62

5.2.1 while語句 63

5.2.2 do-while語句 64

5.2.3 for語句 66

5.2.4 for循環的for-each版本 68

5.2.5 嵌套的循環 72

5.3 跳轉語句 72

5.3.1 使用break語句 72

5.3.2 使用continue語句 75

5.3.3 return語句 76

第6章 類 77

6.1 類的基礎知識 77

6.1.1 類的一般形式 77

6.1.2 一個簡單的類 78

6.2 聲明對象 79

6.3 為對象引用變量賦值 80

6.4 方法 81

6.4.1 為Box類添加方法 81

6.4.2 返回值 83

6.4.3 添加帶參數的方法 84

6.5 構造函數 85

6.6 this關鍵字 87

6.7 垃圾回收 88

6.8 堆棧類 88

第7章 方法和類的深入分析 91

7.1 重載方法 91

7.2 將對像用作參數 94

7.3 實參傳遞的深入分析 96

7.4 返回對象 97

7.5 遞歸 98

7.6 訪問控制 100

7.7 理解static 102

7.8 final介紹 104

7.9 重新審視數組 104

7.10 嵌套類和內部類 105

7.11 String類介紹 107

7.12 使用命令行參數 109

7.13 varargs:可變長度實參 110

7.13.1 重載varargs方法 112

7.13.2 varargs方法與模糊性 113

第8章 繼承 115

8.1 繼承的基礎知識 115

8.1.1 成員訪問與繼承 116

8.1.2 一個更實際的例子 117

8.1.3 超類變量可以引用子類對象 118

8.2 使用super關鍵字 119

8.2.1 使用super調用超類的構造函數 119

8.2.2 super的另一種用法 122

8.3 創建多級繼承層次 123

8.4 構造函數的執行時機 125

8.5 方法重寫 126

8.6 動態方法調度 128

8.6.1 重寫方法的目的 129

8.6.2 應用方法重寫 129

8.7 使用抽像類 130

8.8 在繼承中使用final關鍵字 132

8.8.1 使用final關鍵字阻止重寫 132

8.8.2 使用final關鍵字阻止繼承 133

8.9 Object類 133

第9章 包和接口 135

9.1 包 135

9.1.1 定義包 135

9.1.2 包查找與CLASSPATH 136

9.1.3 一個簡短的包示例 136

9.2 包和成員訪問 137

9.3 導入包 140

9.4 接口 141

9.4.1 定義接口 141

9.4.2 實現接口 142

9.4.3 嵌套接口 144

9.4.4 應用接口 144

9.4.5 接口中的變量 147

9.4.6 接口可以擴展 148

9.5 默認接口方法 149

9.5.1 默認方法的基礎知識 149

9.5.2 一個更加實用的例子 151

9.5.3 多級繼承的問題 151

9.6 在接口中使用靜態方法 152

9.7 私有接口方法 152

9.8 關於包和接口的#後說明 153

第10章 異常處理 155

10.1 異常處理的基礎知識 155

10.2 異常類型 155

10.3 未捕獲的異常 156

10.4 使用try和catch 157

10.5 多條catch子句 158

10.6 嵌套的try語句 159

10.7 throw 161

10.8 throws 162

10.9 finally 162

10.10 Java的內置異常 164

10.11 創建自己的異常子類 165

10.12 鍊式異常 166

10.13 其他三個異常特性 167

10.14 使用異常 168

第11章 多線程編程 169

11.1 Java線程模型 169

11.1.1 線程優先級 170

11.1.2 同步 170

11.1.3 消息傳遞 171

11.1.4 Thread類和Runnable接口 171

11.2 主線程 171

11.3 創建線程 172

11.3.1 實現Runnable接口 172

11.3.2 擴展Thread類 174

11.3.3 選擇一種創建方式 175

11.4 創建多個線程 175

11.5 使用isAlive()和join()方法 176

11.6 線程優先級 178

11.7 同步 179

11.7.1 使用同步方法 179

11.7.2 synchronized語句 180

11.8 線程間通信 182

11.9 掛起、恢復與停止線程 187

11.10 獲取線程的狀態 189

11.11 使用工廠方法創建和啟動線程 189

11.12 使用多線程 190

第12章 枚舉、自動裝箱與註解 191

12.1 枚舉 191

12.1.1 枚舉的基礎知識 191

12.1.2 values()和valueOf()方法 193

12.1.3 Java枚舉是類類型 194

12.1.4 枚舉繼承自Enum類 195

12.1.5 另一個枚舉示例 196

12.2 類型封裝器 198

12.2.1 Character封裝器 198

12.2.2 Boolean封裝器 198

12.2.3 數值類型封裝器 198

12.3 自動裝箱 199

12.3.1 自動裝箱與方法 200

12.3.2 表達式中發生的自動裝箱/拆箱 201

12.3.3 布爾型和字符型數值的自動裝箱/

拆箱 202

12.3.4 自動裝箱/拆箱有助於防止錯誤 202

12.3.5 一些警告 203

12.4 註解 203

12.4.1 註解的基礎知識 203

12.4.2 指定保留策略 204

12.4.3 在運行時使用反射獲取註解 204

12.4.4 AnnotatedElement接口 208

12.4.5 使用默認值 208

12.4.6 標記註解 209

12.4.7 單成員註解 210

12.4.8 內置註解 211

12.5 類型註解 213

12.6 重複註解 216

第13章 I/O、帶資源的try語句以及其他

主題 219

13.1 I/O的基礎知識 219

13.1.1 流 219

13.1.2 字節流和字符流 219

13.1.3 預定義流 221

13.2 讀取控制台輸入 221

13.2.1 讀取字符 222

13.2.2 讀取字符串 222

13.3 向控制台寫輸出 223

13.4 PrintWriter類 224

13.5 讀/寫文件 225

13.6 自動關閉文件 229

13.7 transient和volatile修飾符 231

13.8 使用instanceof運算符 232

13.9 strictfp 233

13.10 本地方法 234

13.11 使用assert 234

13.12 靜態導入 236

13.13 通過this()調用重載的構造函數 238

13.14 緊湊API配置文件 239

第14章 泛型 241

14.1 什麼是泛型 241

14.2 一個簡單的泛型示例 241

14.2.1 泛型只使用引用類型 244

14.2.2 基於不同類型參數的泛型類型

是不同的 244

14.2.3 泛型提升類型安全性的原理 244

14.3 帶兩個類型參數的泛型類 246

14.4 泛型類的一般形式 247

14.5 有界類型 247

14.6 使用通配符參數 249

14.7 創建泛型方法 255

14.8 泛型接口 257

14.9 原始類型與遺留代碼 259

14.10 泛型類層次 260

14.10.1 使用泛型超類 260

14.10.2 泛型子類 262

14.10.3 泛型層次中的運行時類型比較 263

14.10.4 強制轉換 265

14.10.5 重寫泛型類的方法 265

14.11 泛型的類型推斷 266

14.12 擦除 267

14.13 模糊性錯誤 268

14.14 使用泛型的一些限制 269

14.14.1 不能實例化類型參數 269

14.14.2 對靜態成員的一些限制 269

14.14.3 對泛型數組的一些限制 270

14.14.4 對泛型異常的限制 271

第15章 lambda表達式 273

15.1 lambda表達式簡介 273

15.1.1 lambda表達式的基礎知識 273

15.1.2 函數式接口 274

15.1.3 幾個lambda表達式示例 275

15.2 塊lambda表達式 277

15.3 泛型函數式接口 278

15.4 作為參數傳遞lambda表達式 280

15.5 lambda表達式與異常 282

15.6 lambda表達式和變量捕獲 282

15.7 方法引用 283

15.7.1 靜態方法的方法引用 283

15.7.2 實例方法的方法引用 284

15.7.3 泛型中的方法引用 287

15.8 構造函數引用 289

15.9 預定義的函數式接口 293

第16章 模塊 295

16.1 模塊基礎知識 295

16.1.1 簡單的模塊示例&nbs