基本信息
開本:16開
頁碼:1
版次:1-1
所屬分類: 計算機 > 軟體與程式設計 > JAVA(J#) > Java
內容簡介
計算機書籍
《深入理解java 7:核心技術與最佳實踐》是學習java 7新功能和新特性以及深入理解java核心技術的最佳選擇之一。經過近6年的等待,java迎來了它的又一個歷史性的版本—java 7。java 7在提高開發人員的生產效率、平台性能和模組方向上又邁進了一步,變得更加強大和靈活。《深入理解java 7:核心技術與最佳實踐》不僅對java 7的所有重要更新進行了全面的解讀,而且還對java平台的核心技術的底層實現進行了深入探討,包含大量最佳實踐。
全書的主要內容可分為三大部分:第一部分是1~6章,全面闡釋java 7在語法、jvm、類庫和api等方面的所有重要新功能和新特性,掌握這部分內容有助於大幅度提升編碼效率和提高代碼質量;第二部分是7~13章,對jvm、java原始碼和位元組代碼操作、類載入器、對象生命周期、多執行緒、並發編程、泛型、安全等java平台的核心技術進行了深入解析,掌握這部分內容有助於深入理解java的底層原理;第三部分為第14章,是對java 8的展望,簡要介紹了java 8中將要增加的新特性。
目錄
《深入理解java 7:核心技術與最佳實踐》
前 言
java的挑戰與展望
第1章 java 7語法新特性 / 1
1.1 coin項目介紹 / 1
1.2 在switch語句中使用字元串 / 2
1.2.1 基本用法 / 2
1.2.2 實現原理 / 3
1.2.3 枚舉類型 / 5
1.3 數值字面量的改進 / 5
1.3.1 二進制整數字面量 / 6
1.3.2 在數值字面量中使用下劃線 / 6
1.4 最佳化的異常處理 / 7
1.4.1 異常的基礎知識 / 7
1.4.2 創建自己的異常 / 8
1.4.3 處理異常 / 12
1.4.4 java 7的異常處理新特性 / 14
1.5 try-with-resources語句 / 17
1.6 最佳化變長參數的方法調用 / 19
1.7 小結 / 21
.第2章 java語言的動態性 / 22
2.1 腳本語言支持api / 22
2.1.1 腳本引擎 / 23
2.1.2 語言綁定 / 24
2.1.3 腳本執行上下文 / 25
2.1.4 腳本的編譯 / 27
2.1.5 方法調用 / 28
2.1.6 使用案例 / 29
2.2 反射api / 31
2.2.1 獲取構造方法 / 32
2.2.2 獲取域 / 34
2.2.3 獲取方法 / 34
2.2.4 運算元組 / 35
2.2.5 訪問許可權與異常處理 / 36
2.3 動態代理 / 36
2.3.1 基本使用方式 / 36
2.3.2 使用案例 / 40
2.4 動態語言支持 / 42
2.4.1 java語言與java虛擬機 / 43
2.4.2 方法句柄 / 44
2.4.3 invokedynamic指令 / 66
2.5 小結 / 73
第3章 java i/o / 75
3.1 流 / 75
3.1.1 基本輸入流 / 76
3.1.2 基本輸出流 / 77
3.1.3 輸入流的復用 / 78
3.1.4 過濾輸入輸出流 / 80
3.1.5 其他輸入輸出流 / 81
3.1.6 字元流 / 81
3.2 緩衝區 / 82
3.2.1 基本用法 / 83
3.2.2 位元組緩衝區 / 84
3.2.3 緩衝區視圖 / 86
3.3 通道 / 87
3.3.1 檔案通道 / 88
3.3.2 套接字通道 / 93
3.4 nio.2 / 98
3.4.1 檔案系統訪問 / 98
3.4.2 zip/jar檔案系統 / 106
3.4.3 異步i/o通道 / 108
3.4.4 套接字通道綁定與配置 / 111
3.4.5 ip組播通道 / 111
3.5 使用案例 / 113
3.6 小結 / 115
第4章 國際化與本地化 / 117
4.1 國際化概述 / 117
4.2 unicode / 118
4.2.1 unicode編碼格式 / 119
4.2.2 其他字元集 / 124
4.2.3 java與unicode / 124
4.3 java中的編碼實踐 / 125
4.3.1 java nio中的編碼器和解碼器 / 126
4.3.2 亂碼問題詳解 / 130
4.4 區域設定 / 133
4.4.1 ietf bcp 47 / 134
4.4.2 資源包 / 135
4.4.3 日期和時間 / 143
4.4.4 數字和貨幣 / 144
4.4.5 訊息文本 / 146
4.4.6 默認區域設定的類別 / 148
4.4.7 字元串比較 / 148
4.5 國際化與本地化基本實踐 / 149
4.6 小結 / 152
第5章 圖形用戶界面 / 153
5.1 java圖形用戶界面概述 / 153
5.2 awt / 156
5.2.1 重要組件類 / 156
5.2.2 任意形狀的視窗 / 157
5.2.3 半透明視窗 / 158
5.2.4 組件混合 / 159
5.3 swing / 159
5.3.1 重要組件類 / 159
5.3.2 jlayer組件和layerui類 / 161
5.4 事件處理與執行緒安全性 / 163
5.4.1 事件處理 / 163
5.4.2 事件分發執行緒 / 165
5.4.3 swingworker類 / 167
5.4.4 secondaryloop接口 / 169
5.5 界面繪製 / 170
5.5.1 awt中的界面繪製 / 170
5.5.2 swing中的繪製 / 171
5.6 可插拔式外觀樣式 / 172
5.7 javafx / 175
5.7.1 場景圖 / 175
5.7.2 變換 / 177
5.7.3 動畫效果 / 177
5.7.4 fxml / 179
5.7.5 css外觀描述 / 181
5.7.6 web引擎與網頁顯示 / 182
5.8 使用案例 / 183
5.9 小結 / 185
第6章 java 7其他重要更新 / 186
6.1 關係資料庫訪問 / 186
6.1.1 使用try-with-resources語句 / 186
6.1.2 資料庫查詢的默認模式 / 187
6.1.3 資料庫連線逾時時間與終止 / 188
6.1.4 語句自動關閉 / 189
6.1.5 rowset實現提供者 / 190
6.2 java.lang包的更新 / 191
6.2.1 基本類型的包裝類 / 191
6.2.2 進程使用 / 192
6.2.3 thread類的更新 / 194
6.3 java實用工具類 / 195
6.3.1 對象操作 / 195
6.3.2 正則表達式 / 197
6.3.3 壓縮檔案處理 / 200
6.4 javabeans組件 / 201
6.4.1 獲取組件信息 / 201
6.4.2 執行語句和表達式 / 202
6.4.3 持久化 / 202
6.5 小結 / 203
第7章 java虛擬機 / 205
7.1 虛擬機基本概念 / 205
7.2 記憶體管理 / 206
7.3 引用類型 / 208
7.3.1 強引用 / 209
7.3.2 引用類型基本概念 / 211
7.3.3 軟引用 / 213
7.3.4 弱引用 / 215
7.3.5 幽靈引用 / 217
7.3.6 引用佇列 / 220
7.4 java本地接口 / 221
7.4.1 jni基本用法 / 221
7.4.2 java程式中集成c/c++代碼 / 225
7.4.3 在c/c++程式中啟動java虛擬機 / 227
7.5 hotspot虛擬機 / 228
7.5.1 位元組代碼執行 / 229
7.5.2 垃圾回收 / 229
7.5.3 啟動參數 / 235
7.5.4 分析工具 / 236
7.5.5 java虛擬機工具接口 / 241
7.6 小結 / 244
第8章 java原始碼和位元組代碼操作 / 245
8.1 java位元組代碼格式 / 245
8.1.1 基本格式 / 246
8.1.2 常量池的結構 / 248
8.1.3 屬性 / 249
8.2 動態編譯java原始碼 / 249
8.2.1 使用javac工具 / 250
8.2.2 java編譯器api / 251
8.2.3 使用eclipse jdt編譯器 / 254
8.3 位元組代碼增強 / 257
8.3.1 使用asm / 258
8.3.2 增強代理 / 267
8.4 註解 / 271
8.4.1 註解類型 / 271
8.4.2 創建註解類型 / 273
8.4.3 使用註解類型 / 274
8.4.4 處理註解 / 275
8.5 使用案例 / 284
8.6 小結 / 286
第9章 java類載入器 / 287
9.1 類載入器概述 / 287
9.2 類載入器的層次結構與代理模式 / 288
9.3 創建類載入器 / 290
9.4 類載入器的隔離作用 / 294
9.5 執行緒上下文類載入器 / 296
9.6 class.forname方法 / 298
9.7 載入資源 / 299
9.8 web套用中的類載入器 / 301
9.9 osgi中的類載入器 / 303
9.9.1 osgi基本的類載入器機制 / 303
9.9.2 equinox框架的類載入實現機制 / 303
9.9.3 equinox框架嵌入到web容器中 / 306
9.10 小結 / 308
第10章 對象生命周期 / 309
10.1 java類的連結 / 309
10.2 java類的初始化 / 311
10.3 對象的創建與初始化 / 312
10.4 對象終止 / 314
10.5 對象複製 / 318
10.6 對象序列化 / 322
10.6.1 默認的對象序列化 / 324
10.6.2 自定義對象序列化 / 326
10.6.3 對象替換 / 329
10.6.4 版本更新 / 330
10.6.5 安全性 / 331
10.6.6 使用externalizable接口 / 332
10.7 小結 / 334
第11章 多執行緒與並發編程實踐 / 335
11.1 多執行緒 / 335
11.1.1 可見性 / 336
11.1.2 java記憶體模型 / 339
11.1.3 volatile關鍵字 / 340
11.1.4 final關鍵字 / 341
11.1.5 原子操作 / 342
11.2 基本執行緒同步方式 / 343
11.2.1 synchronized關鍵字 / 343
11.2.2 object類的wait、notify和notifyall方法 / 344
11.3 使用thread類 / 346
11.3.1 執行緒狀態 / 346
11.3.2 執行緒中斷 / 347
11.3.3 執行緒等待、睡眠和讓步 / 348
11.4 非阻塞方式 / 349
11.5 高級實用工具 / 352
11.5.1 高級同步機制 / 352
11.5.2 底層同步器 / 355
11.5.3 高級同步對象 / 357
11.5.4 數據結構 / 363
11.5.5 任務執行 / 365
11.6 java se 7新特性 / 368
11.6.1 輕量級任務執行框架fork/join / 368
11.6.2 多階段執行緒同步工具 / 370
11.7 threadlocal類 / 373
11.8 小結 / 374
第12章 java泛型 / 375
12.1 泛型基本概念 / 375
12.2 類型擦除 / 378
12.3 上界和下界 / 382
12.4 通配符 / 384
12.5 泛型與數組 / 385
12.6 類型系統 / 388
12.7 覆寫與重載 / 391
12.7.1 覆寫對方法類型簽名的要求 / 391
12.7.2 覆寫對返回值類型的要求 / 395
12.7.3 覆寫對異常聲明的要求 / 396
12.7.4 重載 / 396
12.8 類型推斷和[]操作符 / 397
12.9 泛型與反射api / 400
12.10 使用案例 / 402
12.11 小結 / 403
第13章 java安全 / 405
13.1 java安全概述 / 405
13.2 用戶認證 / 406
13.2.1 主體、身份標識與憑證 / 406
13.2.2 登錄 / 407
13.3 許可權控制 / 415
13.3.1 許可權、策略與保護域 / 416
13.3.2 訪問控制許可權 / 418
13.3.3 特權動作 / 420
13.3.4 訪問控制上下文 / 421
13.3.5 守衛對象 / 423
13.4 加密與解密、報文摘要和數字簽名 / 424
13.4.1 java密碼框架 / 424
13.4.2 加密與解密 / 425
13.4.3 報文摘要 / 427
13.4.4 數字簽名 / 428
13.5 安全套接字連線 / 430
13.5.1 ssl協定 / 431
13.5.2 https / 432
13.6 使用案例 / 434
13.7 小結 / 437
第14章 超越java 7 / 438
14.1 lambda表達式 / 438
14.1.1 函式式接口 / 439
14.1.2 lambda表達式的語法 / 440
14.1.3 目標類型 / 440
14.1.4 詞法作用域 / 441
14.1.5 方法引用 / 442
14.1.6 接口的默認方法 / 443
14.2 java平台模組化 / 444
14.3 java se 8的其他更新 / 445
14.4 小結 / 445
附錄a openjdk / 446
附錄b java簡史 / 448