寫給大忙人看的Java核心技術

寫給大忙人看的Java核心技術
定價:648
NT $ 648
 

內容簡介

本書是《Java核心技術》的主要作者Cay S. Horstmann全面、細致介紹Java 8新特性的一本新書,包含了他一直以來對Java的真知灼見。

本書首先介紹了Java編程中最基礎的內容,然后從Java 8最重要的新特性之一lambda表達式講起,帶領讀者一路探索和實踐Java 8的新特性。這當中不僅包含了針對數據處理的Stream和並發編程中增強的內容,還介紹了最新的時間日期API以及如何在Java中使用腳本語言。

本書內容淺顯易懂,文筆風趣幽默。書中包含了生動的、可實際應用的示例程序源代碼,讀者可以自行下載並運行,這種親身實踐有助於加深對Java 8新特性的理解。即便對於初學者來說,本書也是有具有很強的參考學習價值。對於那些有一定Java開發使用經驗的讀者來說,本書不僅可以鞏固基本Java編程核心基礎知識,同時還可與時俱進學習Java的新內容和技術。處於不同階段的讀者都能從本書中獲益。

Cay S. Horstmann是名著Core Java, Volumes I and II的主要作者,同時也是《寫給大忙人的Java SE 8》(Java SE 8 for the Really Impatient)與《快學Scala》(Scala for the impatient)兩本書的作者。他還編寫了一系列針對專業編程人員和計算機專業學生的書籍。他是聖荷西州立大學計算機科學專業的一名教授,也是一位 Java擁護者。
 

目錄

第1章 基本的編程結構1
1.1 第一個程序2
1.1.1 「Hello,World」程序解析2
1.1.2 編譯與運行Java程序3
1.1.3 方法調用5
1.2 基本類型7
1.2.1 整型7
1.2.2 浮點類型8
1.2.3 char型9
1.2.4 布爾型10
1.3 變量10
1.3.1 變量的聲明10
1.3.2 名稱10
1.3.3 初始化11
1.3.4 常量11
1.4 算術操作13
1.4.1 賦值13
1.4.2 基本運算14
1.4.3 數學方法15
1.4.4 數字類型轉換16
1.4.5 關系和邏輯操作符17
1.4.6 大數19
1.5 字符串19
1.5.1 字符串連接20
1.5.2 子字符串21
1.5.3 字符串比較21
1.5.4 數字與字符串轉換23
1.5.5 String類API24
1.5.6 編碼點(codepoint)和編碼單元(codeunit)25
1.6 輸入與輸出26
1.6.1 讀取輸入27
1.6.2 格式化輸出28
1.7 控制流30
1.7.1 分支30
1.7.2 循環32
1.7.3 跳出循環與繼續循環34
1.7.4 局部變量作用域36
1.8 數組和數組列表38
1.8.1 使用數組38
1.8.2 構造數組39
1.8.3 數組列表39
1.8.4 基本類型包裝類41
1.8.5 增強的for循環41
1.8.6 數組與數組列表的復制42
1.8.7 數組算法43
1.8.8 命令行參數44
1.8.9 多維數組45
1.9 功能分解48
1.9.1 靜態方法的聲明與調用48
1.9.2 數組參數與返回值48
1.9.3 可變參數49
練習50
第2章 面向對象編程53
2.1 使用對象54
2.1.1 Accessor(訪問器)和Mutator(更改器)方法56
2.1.2 對象引用56
2.2 實現類58
2.2.1 實例變量58
2.2.2 方法頭59
2.2.3 方法體59
2.2.4 實例方法調用60
2.2.5 this引用61
2.2.6 值調用62
2.3 構造對象63
2.3.1 實現構造函數64
2.3.2 重載64
2.3.3 調用另一個構造函數65
2.3.4 默認初始化66
2.3.5 實例變量初始化66
2.3.6 final實例變量67
2.3.7 無參構造函數68
2.4 靜態變量和方法69
2.4.1 靜態變量69
2.4.2 靜態常量70
2.4.3 靜態初始塊71
2.4.4 靜態方法71
2.4.5 工廠方法73
2.5 包73
2.5.1 包的聲明74
2.5.2 類路徑75
2.5.3 包作用域77
2.5.4 導入包78
2.5.5 靜態導入79
2.6 嵌套類80
2.6.1 靜態嵌套類80
2.6.2 內部類82
2.6.3 內部類的特殊語法85
2.7 文檔注釋86
2.7.1 插入注釋86
2.7.2 類注釋87
2.7.3 方法注釋88
2.7.4 變量注釋88
2.7.5 通用注釋89
2.7.6 鏈接89
2.7.7 包和概述注釋90
2.7.8 注釋的提取90
練習91
第3章 接口和lambda表達式95
3.1 接口96
3.1.1 聲明接口96
3.1.2 實現接口97
3.1.3 轉換為接口類型99
3.1.4 強制類型轉換(cast)和instanceof操作符99
3.1.5 繼承接口100
3.1.6 實現多個接口101
3.1.7 常量101
3.2 靜態方法和默認方法101
3.2.1 靜態方法102
3.2.2 默認方法102
3.2.3 解決默認方法沖突103
3.3 接口示例105
3.3.1 Comparable接口105
3.3.2 Comparator接口107
3.3.3 Runable接口108
3.3.4 UI(UserInterface)回調109
3.4 lambda表達式110
3.4.1 lambda表達式語法110
3.4.2 函數式接口111
3.5 方法引用和構造函數引用112
3.5.1 方法引用113
3.5.2 構造函數引用114
3.6 使用lambda表達式115
3.6.1 實現延遲執行115
3.6.2 選擇函數式接口116
3.6.3 實現自己的函數式接口118
3.7 lambda表達式和變量作用域119
3.7.1 lambda表達式的作用域119
3.7.2 訪問來自閉合作用域的變量120
3.8 高階函數123
3.8.1 返回函數的方法123
3.8.2 修改函數的方法123
3.8.3 Comparator方法124
3.9 局部內部類125
3.9.1 局部類125
3.9.2 匿名類126
練習.127
第4章 繼承與反射131
4.1 繼承一個類132
4.1.1 父類與子類132
4.1.2 定義和繼承子類方法132
4.1.3 方法覆蓋133
4.1.4 子類的構造134
4.1.5 父類賦值135
4.1.6 轉換136
4.1.7 final方法和類136
4.1.8 抽象方法和類137
4.1.9 受保護訪問138
4.1.10 匿名子類139
4.1.11 繼承和默認方法140
4.1.12 帶super的方法表達式141
4.2 Object:終極父類141
4.2.1 toString方法142
4.2.2 equals方法144
4.2.3 hashCode方法147
4.2.4 克隆對象148
4.3 枚舉151
4.3.1 枚舉方法152
4.3.2 構造函數、方法和域153
4.3.3 實例的實現體153
4.3.4 靜態成員154
4.3.5 switch枚舉對象155
4.4 運行時類型信息和資源156
4.4.1 Class類156
4.4.2 資源加載160
4.4.3 類加載器160
4.4.4 上下文類加載器162
4.4.5 服務加載器164
4.5 反射165
4.5.1 枚舉類成員165
4.5.2 對象檢查167
4.5.3 方法調用167
4.5.4 對象構造168
4.5.5 JavaBeans169
4.5.6 使用數組170
4.5.7 代理172
練習174
第5章 異常、斷言和日志處理177
5.1 異常處理178
5.1.1 異常拋出178
5.1.2 異常繼承層次179
5.1.3 已檢查異常的聲明181
5.1.4 異常捕獲182
5.1.5 try—with—resources語句183
5.1.6 finally子句185
5.1.7 異常重拋和鏈接186
5.1.8 堆棧蹤跡188
5.1.9 Objects.requireNonNull方法189
5.2 斷言189
5.2.1 使用斷言190
5.2.2 啟用和禁用斷言191
5.3 記錄日志191
5.3.1 采用Logger192
5.3.2 日志記錄器192
5.3.3 日志級別192
5.3.4 其他日志記錄方法193
5.3.5 日志記錄的配置項195
5.3.6 日志處理器196
5.3.7 過濾器和格式化器199
練習199
第6章 泛型編程203
6.1 泛型類204
6.2 泛型方法205
6.3 類型限定206
6.4 類型變異和通配符207
6.4.1 子類型通配符208
6.4.2 父類型通配符209
6.4.3 帶類型變量的通配符210
6.4.4 無限定通配符212
6.4.5 通配符捕獲212
6.5 Java虛擬機中的泛型213
6.5.1 類型擦除213
6.5.2 轉換插入214
6.5.3 橋方法215
6.6 泛型約束216
6.6.1 無基本類型參數217
6.6.2 所有類型在運行時都是原始的217
6.6.3 不能實例化類型變量218
6.6.4 不能構造參數化類型的數組220
6.6.5 靜態上下文中的類類型變量不是有效的221
6.6.6 類型擦除后的方法可能不沖突222
6.6.7 異常與泛型223
6.7 反射與泛型224
6.7.1 Class<T>類224
6.7.2 虛擬機中的泛型類型信息225
練習227
第7章 集合233
7.1 集合類框架概要234
7.2 迭代器238
7.3 set240
7.4 map241
7.5 其他集合245
7.5.1 Properties245
7.5.2 位組247
7.5.3 枚舉set和枚舉map248
7.5.4 棧、隊列、雙端隊列、優先級隊列249
7.5.5 弱哈希映射表250
7.6 視圖251
7.6.1 范圍(range)251
7.6.2 空視圖和單例視圖252
7.6.3 不可修改的視圖252
練習253
第8章 Stream257
8.1 從迭代到Stream操作258
8.2 創建Stream259
8.3 filter、map和flatMap方法261
8.4 提取子流和組合流262
8.5 其他流轉換263
8.6 簡單歸約264
8.7 Optional類型265
8.7.1 如何使用Optional類型值265
8.7.2 如何不使用Optional類型值266
8.7.3 創建Optional類型值267
8.7.4 使用flatMap來組合可選值函數267
8.8 收集結果268
8.9 將結果收集到map中270
8.10 分組和分片271
8.11 下游收集器272
8.12 歸約操作274
8.13 基本類型流276
8.14 並行流278
練習280
第9章 輸入與輸出處理285
9.1 輸入/輸出流:Reader和Writer286
9.1.1 獲取流對象286
9.1.2 讀取字節287
9.1.3 寫字節288
9.1.4 字符集編碼288
9.1.5 文本輸入291
9.1.6 文本輸出292
9.1.7 讀寫二進制數據294
9.1.8 隨機存取文件295
9.1.9 內存映射文件295
9.1.10 文件鎖296
9.2 路徑、文件和目錄297
9.2.1 路徑297
9.2.2 創建文件和目錄299
9.2.3 復制、移動和刪除文件300
9.2.4 訪問目錄內容301
9.2.5 ZIP文件系統304
9.3 URL連接305
9.4 正則表達式307
9.4.1 正則表達式語法307
9.4.2 匹配一個或多個311
9.4.3 分組312
9.4.4 消除或替換匹配結果313
9.4.5 標記314
9.5 序列化315
9.5.1 Serializable接口315
9.5.2 瞬態實例變量317
9.5.3 readObject和writeObject方法317
9.5.4 readResolve和writeReplace方法319
9.5.5 版本化320
練習321
第10章 並發編程325
10.1 並發任務326
10.1.1 運行任務326
10.1.2 Future和Executor服務328
10.2 線程安全331
10.2.1 可見性331
10.2.2 競爭條件333
10.2.3 安全並發的策略336
10.2.4 不可變類336
10.3 並行算法337
10.3.1 並行流338
10.3.2 並行數組操作338
10.4 線程安全的數據結構339
10.4.1 ConcurrentHashMap.340
10.4.2 阻塞隊列341
10.4.3 其他線程安全的數據結構343
10.5 原子值344
10.6 鎖346
10.6.1 可重入鎖(ReentrantLock)347
10.6.2 synchronized關鍵字348
10.6.3 條件等待350
10.7 線程352
10.7.1 啟動線程352
10.7.2 線程中斷353
10.7.3 線程變量355
10.7.4 線程的其他屬性356
10.8 異步計算356
10.8.1 UI回調中的長期運行任務356
10.8.2 可完成的future358
10.9 進程361
10.9.1 構建進程361
10.9.2 運行進程363
練習364
第11章 注解371
11.1 使用注解372
11.1.1 注解元素372
11.1.2 多注解和重復注解373
11.1.3 注解聲明374
11.1.4 注解類型用途375
11.1.5 明確接收者376
11.2 定義注解378
11.3 標准注解380
11.3.1 編譯相關的注解381
11.3.2 資源管理相關的注解382
11.3.3 元注解382
11.4 運行時注解處理384
11.5 源碼級注解處理387
11.5.1 注解處理器388
11.5.2 語言模型API388
11.5.3 使用注解生成源碼389
練習392
第12章 日期和時間API395
12.1 時間線396
12.2 本地日期398
12.3 日期調整器401
12.4 本地時間402
12.5 時區時間403
12.6 格式化和解析406
12.7 應對遺留代碼409
練習411
第13章 國際化413
13.1 本地化414
13.1.1 指定本地化414
13.1.2 默認locale417
13.1.3 顯示名稱418
13.2 數字格式化418
13.3 貨幣符號419
13.4 日期和時間格式化420
13.5 排序和規格化422
13.6 消息格式化424
13.7 資源束426
13.7.1 組織資源束426
13.7.2 資源束類428
13.8 字符集編碼429
13.9 首選項430
練習432
第14章 編譯與腳本435
14.1 編譯器API435
14.1.1 調用編譯器436
14.1.2 啟動編譯任務436
14.1.3 從內存讀取源文件437
14.1.4 向內存寫入字節碼438
14.1.5 捕獲診斷信息440
14.2 腳本API440
14.2.1 獲取腳本引擎440
14.2.2 綁定441
14.2.3 重定向輸入與輸出442
14.2.4 調用腳本函數和方法443
14.2.5 編譯腳本444
14.3 Nashorn腳本引擎445
14.3.1 從命令行運行Nashorn445
14.3.2 調用get、set和重載方法446
14.3.3 構造Java對象447
14.3.4 JavaScript和Java中的字符串449
14.3.5 數字449
14.3.6 使用數組450
14.3.7 列表與映射451
14.3.8 lambda表達式452
14.3.9 繼承Java類與實現Java接口453
14.3.10 異常455
14.4 shell腳本與Nashorn455
14.4.1 執行shell命令456
14.4.2 字符串插值456
14.4.3 腳本輸入457
練習458
網路書店 類別 折扣 價格
  1. 新書
    $648