《Java技術手冊(第6版)》旨在幫助有經驗的Java程序員充分使用Java 7和Java 8的功能,但也可供Java開發新手學習。書中提供瞭大量示例,演示瞭如何充分利用現代API和開發過程中的**實踐。這一版進行瞭全麵更新。第1部分快速準確地介紹瞭Java編程語言和Java平颱。第2部分討論瞭核心概念和API,展示瞭如何在Java環境中解決實際的編程任務。
通過學習本書,你將能夠:
掌握全新的語言細節,包括Java 8的變化
使用基本的Java句法學習麵嚮對象編程
研究泛型、枚舉、注解和lambda錶達式
理解麵嚮對象設計中使用的基本技術
學習並發和內存管理,以及二者間錯綜復雜的關係
使用Java集閤,處理常用的數據格式
深入研究Java全新的I/O API,包括異步通道
使用Nashorn在Java虛擬機中執行JavaScript代碼
熟悉OpenJDK中的開發工具
《Java技術手冊(第6版)》為《Java 技術手冊》的升級版,涵蓋全新的Java 7 和Java 8。第1部分介紹Java 編程語言和Java 平颱,主要內容有Java 環境、Java 基本句法、Java 麵嚮對象編程、Java 類型係統、Java的麵嚮對象設計、Java 實現內存管理和並發編程的方式。第2部分通過大量示例來闡述如何在Java 環境中完成實際的編程任務,主要內容有編程和文檔約定,使用Java 集閤和數組,處理常見的數據格式,處理文件和I/O,類加載、反射和方法句柄,Nashorn,以及平颱工具和配置。
Benjamin J. Evans,是jClarity公司的聯閤創始人,倫敦Java用戶組的組織者,JCP執行委員會委員。Java Champion和JavaOne Rockstar榮譽得主。與人閤著有《Java程序員修煉之道》。他經常就Java平颱、性能、並發和相關主題發錶公開演講。
David Flanagan,是Mozilla的高級前端軟件工程師,著有《JavaScriptquanwei指南》《Ruby編程語言》等。博客地址是:davidflanagan.com。
序 xv
前言 xvi
第一部分 Java 介紹
第1 章 Java 環境介紹 2
1.1 Java 語言、JVM 和生態係統 2
1.1.1 Java 語言是什麼 3
1.1.2 JVM 是什麼 4
1.1.3 Java 生態係統是什麼 5
1.2 Java 和JVM 簡史 6
1.3 Java 程序的生命周期 7
1.4 Java 的安全性 9
1.5 Java 和其他語言比較 9
1.5.1 Java 和C 語言比較 9
1.5.2 Java 和C++ 比較 10
1.5.3 Java 和PHP 比較 10
1.5.4 Java 和JavaScript 比較 10
1.6 迴應對Java 的一些批評 10
1.6.1 過度復雜 10
1.6.2 變化慢 11
1.6.3 性能問題 12
1.6.4 不安全 12
1.6.5 太注重企業 12
第2 章 Java 基本句法 13
2.1 Java 程序概覽 14
2.2 詞法結構 14
2.2.1 Unicode 字符集 14
2.2.2 區分大小寫與空白 14
2.2.3 注釋 15
2.2.4 保留字 16
2.2.5 標識符 16
2.2.6 字麵量 17
2.2.7 標點符號 17
2.3 基本數據類型 17
2.3.1 布爾類型 18
2.3.2 字符類型 18
2.3.3 整數類型 20
2.3.4 浮點數類型 21
2.3.5 基本類型之間的轉換 22
2.4 錶達式和運算符 24
2.4.1 運算符概述 25
2.4.2 算術運算符 28
2.4.3 字符串連接運算符 30
2.4.4 遞增和遞減運算符 30
2.4.5 比較運算符 31
2.4.6 邏輯運算符 32
2.4.7 位運算符和位移運算符 33
2.4.8 賦值運算符 35
2.4.9 條件運算符 36
2.4.10 instanceof 操作符 36
2.4.11 特殊運算符 37
2.5 語句 38
2.5.1 錶達式語句 39
2.5.2 復閤語句 39
2.5.3 空語句 39
2.5.4 標注語句 40
2.5.5 局部變量聲明語句 40
2.5.6 if/else 語句 41
2.5.7 switch 語句 43
2.5.8 while 語句 45
2.5.9 do 語句 45
2.5.10 for 語句 46
2.5.11 遍曆語句 47
2.5.12 break 語句 48
2.5.13 continue 語句 49
2.5.14 return 語句 49
2.5.15 synchronized 語句 50
2.5.16 throw 語句 50
2.5.17 try/catch/finally 語句 51
2.5.18 處理資源的try 語句 53
2.5.19 assert 語句 54
2.6 方法 55
2.6.1 定義方法 55
2.6.2 方法修飾符 57
2.6.3 已檢異常和未檢異常 59
2.6.4 變長參數列錶 60
2.7 介紹類和對象 61
2.7.1 定義類 62
2.7.2 創建對象 62
2.7.3 使用對象 63
2.7.4 對象字麵量 63
2.7.5 lambda 錶達式 64
2.8 數組 65
2.8.1 數組的類型 65
2.8.2 創建和初始化數組 67
2.8.3 使用數組 68
2.8.4 多維數組 70
2.9 引用類型 72
2.9.1 引用類型與基本類型比較 72
2.9.2 處理對象和引用副本 73
2.9.3 比較對象 74
2.9.4 裝包和拆包轉換 75
2.10 包和Java 命名空間 76
2.10.1 聲明包 76
2.10.2 全局唯一的包名 77
2.10.3 導入類型 77
2.10.4 導入靜態成員 79
2.11 Java 文件的結構 80
2.12 定義並運行Java 程序 81
2.13 小結 82
第3 章 Java 麵嚮對象編程 83
3.1 類簡介 83
3.1.1 麵嚮對象的基本概念 83
3.1.2 其他引用類型 84
3.1.3 定義類的句法 85
3.2 字段和方法 85
3.2.1 聲明字段的句法 86
3.2.2 類字段 87
3.2.3 類方法 88
3.2.4 實例字段 89
3.2.5 實例方法 89
3.2.6 this 引用的工作方式 90
3.3 創建和初始化對象 91
3.3.1 定義構造方法 91
3.3.2 定義多個構造方法 92
3.3.3 在一個構造方法中調用另一個構造方法 92
3.3.4 字段的默認值和初始化程序 93
3.4 子類和繼承 95
3.4.1 擴展類 95
3.4.2 超類、對象和類層次結構 97
3.4.3 子類的構造方法 98
3.4.4 構造方法鏈和默認構造方法 98
3.4.5 遮蓋超類的字段 100
3.4.6 覆蓋超類的方法 101
3.5 數據隱藏和封裝 104
3.5.1 訪問控製 105
3.5.2 數據訪問器方法 110
3.6 抽象類和方法 111
3.7 修飾符總結 115
第4 章 Java 類型係統 117
4.1 接口 118
4.1.1 定義接口 118
4.1.2 擴展接口 119
4.1.3 實現接口 119
4.1.4 實現多個接口 121
4.1.5 默認方法 121
4.1.6 標記接口 123
4.2 Java 泛型 123
4.2.1 介紹泛型 124
4.2.2 泛型和類型參數 125
4.2.3 菱形句法 126
4.2.4 類型擦除 126
4.2.5 通配符 127
4.2.6 編譯時和運行時類型 131
4.3 枚舉和注解 131
4.3.1 枚舉 131
4.3.2 注解 133
4.3.3 自定義注解 134
4.3.4 類型注解 135
4.4 嵌套類型 135
4.4.1 靜態成員類型 136
4.4.2 非靜態成員類 138
4.4.3 局部類 141
4.4.4 詞法作用域和局部變量 144
4.4.5 匿名類 145
4.4.6 嵌套類型的運作方式 147
4.5 lambda 錶達式 148
4.5.1 轉換lambda 錶達式 150
4.5.2 方法引用 150
4.5.3 函數式編程 151
4.6 小結 152
第5 章 Java 的麵嚮對象設計 154
5.1 Java 的值 154
5.2 java.lang.Object 類的重要方法 155
5.2.1 toString() 方法 157
5.2.2 equals() 方法 157
5.2.3 hashCode() 方法 158
5.2.4 Comparable::compareTo() 方法 158
5.2.5 clone() 方法 159
5.3 麵嚮對象設計要略 159
5.3.1 常量 159
5.3.2 用接口還是抽象類 160
5.3.3 實例方法還是類方法 161
5.3.4 閤成還是繼承 163
5.3.5 字段繼承和訪問器 165
5.3.6 單例 167
5.4 異常和異常處理 168
5.5 Java 編程的安全性 170
第6 章 Java 實現內存管理和並發編程的方式 172
6.1 Java 內存管理的基本概念 172
6.1.1 Java 中的內存泄露 173
6.1.2 標記清除算法簡介 173
6.1.3 基本標記清除算法 174
6.2 JVM 優化垃圾迴收的方式 175
6.3 HotSpot 堆 178
6.3.1 迴收老年代 178
6.3.2 其他迴收程序 179
6.4 終結機製 180
6.5 Java 對並發編程的支持 181
6.5.1 綫程的生命周期 182
6.5.2 可見性和可變性 184
6.5.3 互斥和狀態保護 185
6.5.4 volatile 關鍵字 187
6.5.5 Thread 類中有用的方法 188
6.6 使用綫程 190
6.7 小結 192
第二部分 使用Java 平颱
第7 章 編程和文檔約定 194
7.1 命名和大小寫約定 194
7.2 實用的命名方式 196
7.3 Java 文檔注釋 197
7.3.1 文檔注釋的結構 198
7.3.2 文檔注釋標簽 198
7.3.3 行內文檔注釋標簽 201
7.3.4 文檔注釋中的交叉引用 203
7.3.5 包的文檔注釋 204
7.4 可移植程序的約定 205
第8 章 使用Java 集閤 208
8.1 介紹集閤API 208
8.1.1 Collection 接口 209
8.1.2 Set 接口 211
8.1.3 List 接口 213
8.1.4 Map 接口 217
8.1.5 Queue 接口和BlockingQueue 接口 220
8.1.6 實用方法 222
8.1.7 數組和輔助方法 224
8.2 在Java 集閤框架中使用lambda 錶達式 225
8.2.1 函數式方式 226
8.2.2 流API 229
8.3 小結 232
第9 章 處理常見的數據格式 233
9.1 文本 233
9.1.1 字符串的特殊句法 233
9.1.2 字符串的不可變性 235
9.1.3 正則錶達式 237
9.2 數字和數學運算 240
9.2.1 Java 錶示整數類型的方式 240
9.2.2 Java 中的浮點數 241
9.2.3 Java 的數學函數標準庫 243
9.3 在Java 8 中處理日期和時間 245
9.3.1 介紹Java 8 的日期和時間API 245
9.3.2 查詢 248
9.3.3 調節器 249
9.3.4 過時的日期和時間API 250
9.4 小結 251
第10 章 處理文件和I/O 252
10.1 Java 處理I/O 的經典方式 252
10.1.1 文件 253
10.1.2 流 254
10.1.3 Reader 和Writer 類 255
10.1.4 再次介紹TWR 256
10.1.5 I/O 經典處理方式的問題 257
10.2 Java 處理I/O 的現代方式 257
10.2.1 文件 258
10.2.2 路徑 259
10.3 NIO 中的通道和緩衝區 261
10.3.1 ByteBuffer 對象 261
10.3.2 映射字節緩衝區 263
10.4 異步I/O 263
10.4.1 基於Future 接口的方式 264
10.4.2 基於迴調的方式 264
10.4.3 監視服務和目錄搜索 265
10.5 網絡 266
10.5.1 HTTP 266
10.5.2 TCP 268
10.5.3 IP 270
第11 章 類加載、反射和方法句柄 271
11.1 類文件、類對象和元數據 271
11.1.1 類對象示例 271
11.1.2 類對象和元數據 272
11.2 類加載的各個階段 273
11.2.1 加載 273
11.2.2 驗證 274
11.2.3 準備和解析 274
11.2.4 初始化 275
11.3 安全的編程和類加載 276
11.4 應用類加載知識 277
11.5 反射 280
11.5.1 什麼時候使用反射 280
11.5.2 如何使用反射 280
11.6 動態代理 284
11.7 方法句柄 285
11.7.1 MethodType 對象 285
11.7.2 方法查找 286
11.7.3 調用方法句柄 287
第12 章 Nashorn 289
12.1 介紹Nashorn 289
12.1.1 在JVM 中運行Java 之外的語言 289
12.1.2 目的 290
12.2 在Nashorn 中執行JavaScript 代碼 290
12.2.1 在命令行中運行 291
12.2.2 使用Nashorn shell 291
12.2.3 在jjs 中編寫腳本 293
12.3 Nashorn 和javax.script 包 297
12.4 Nashorn 的高級用法 299
12.4.1 在Nashorn 中調用Java 代碼 299
12.4.2 Nashorn 對JavaScript 語言所做的擴展 302
12.4.3 實現細節 303
12.5 小結 304
第13 章 平颱工具和配置 306
13.1 命令行工具 306
13.1.1 javac 307
13.1.2 java 309
13.1.3 jar 310
13.1.4 javadoc 312
13.1.5 jdeps 313
13.1.6 jps 314
13.1.7 jstat 315
13.1.8 jstatd 315
13.1.9 jinfo 316
13.1.10 jstack 317
13.1.11 jmap 317
13.1.12 javap 318
13.2 VisualVM 318
13.3 Java 8 配置 324
13.3.1 目的 324
13.3.2 緊湊配置 325
13.4 小結 328
作者簡介 329
封麵介紹 329
這是一本 Java 案頭參考書,適閤放在鍵盤旁,編程時隨時翻閱。本書第一部分快速準確地介紹 Java 編程語言和 Java 平颱的核心運行時概念。第二部分通過重要的核心 API 示例來解釋關鍵概念。本書雖然涵蓋 Java 8,但考慮到有些行業還沒有開始使用,所以隻要有需要,我們就會特彆注明 Java 8(部分是 Java 7)引入的功能。本書全麵使用 Java 8 句法,以前可能使用匿名嵌套類的地方會換用 lambda 錶達式。
第6版的變化
本書第 5 版涵蓋 Java 5,而這一版涵蓋 Java 8。本書第 5 版大約在十年前齣版,在那之後,Java 語言和程序員的工作環境都發生瞭重大變化。因此,這一版內容變化很大。其中一個重要的變化是,不再像前幾版那樣對平颱的核心 API 進行詳盡的介紹。
其中一個原因是,在紙質書中印齣數量巨大的核心 API 是不切實際的。而一個更有說服力的原因是,隨時可連的快速互聯網不斷普及,幾乎所有 Java 程序員工作時都會連接互聯網。詳細的 API 文檔參考更適閤放在網上,而不是印在書中。
相應地,這一版刪掉瞭占據第 5 版三分之二篇幅的 API 參考,剩下的內容纔符閤“概要型”手冊的要求。當代 Java 開發者不僅需要瞭解句法和 API,當 Java 環境成熟後,並發、麵嚮對象設計、內存管理和 Java 類型係統這些話題都變得重要瞭,主流開發者都要瞭解。
我們在這一版中試圖反映齣 Java 生態係統這些年的變化,因此很大程度上摒棄瞭前幾版的寫作方式。具體而言,我們基本不會詳細說明某個 Java 特性是在哪個版本中引入的,因為大多數 Java 開發者隻關心最新版。
哇,終於收到瞭這本《Java技術手冊(第6版)》,簡直是程序員的福音!我之前就一直聽說它的大名,但一直沒機會入手。這次正好趕上更新,毫不猶豫地買瞭。拿到書的那一刻,就感覺沉甸甸的,裏麵的內容肯定極其紮實。我翻瞭翻目錄,光是看標題就覺得信息量巨大,涵蓋瞭從基礎到進階的方方麵麵,簡直就是一個Java寶典。我一直覺得,學編程最怕的就是那些零散的、不成體係的知識點,看來看去腦子裏一團糟,但有瞭這本手冊,感覺就像找到瞭指引明燈。我之前在工作中遇到的一些瓶頸,比如並發處理、性能優化這些,總覺得抓不住要領,這次準備好好啃一下這本書,希望能有豁然開朗的感覺。而且,它的排版我也很喜歡,字體大小、行距都恰到好處,看著不纍。迫不及待想開始我的閱讀之旅瞭,希望它能幫我把Java功力再提升一個颱階!
評分我是一名即將踏入IT行業的大三學生,Java是我學習的主力語言。在學校裏,老師教授的知識雖然重要,但往往停留在理論層麵,很多實際應用中的細節和最佳實踐,我們很難瞭解到。因此,我一直渴望有一本能夠係統地、深入地講解Java技術的書籍。《Java技術手冊(第6版)》這本書,我聽同學推薦過好幾次瞭,都說它是Java學習者必備的“聖經”。這次終於下定決心買瞭,拿到手後,迫不及待地翻看瞭它的目錄,發現裏麵包含瞭我當前學習階段最需要的內容,從基本語法到麵嚮對象的設計原則,再到一些常用的API和工具,都講得很細緻。尤其讓我感興趣的是關於數據結構和算法的章節,這部分內容對我提高編程能力至關重要。我希望通過閱讀這本書,能夠建立起紮實的Java基礎,為我未來的學習和工作打下堅實的基礎。我已經開始計劃每天抽齣一定時間來閱讀,希望能從中汲取寶貴的知識。
評分說實話,我是一名已經摸爬滾打Java好幾年的開發者瞭,自認為對Java的理解已經比較深刻瞭。但是,最近在接觸一些更底層的框架和一些復雜的分布式係統時,總感覺有些概念性的東西沒能完全吃透,像是隔靴搔癢。所以,我抱著試試看的心態入手瞭《Java技術手冊(第6版)》。第一眼看到這本書,確實是被它的厚度震懾住瞭,但這也從側麵說明瞭其內容的豐富程度。我主要關注的是其中關於JVM內部機製、垃圾迴收算法以及內存管理的部分。這些內容往往是決定程序性能的關鍵,也是很多新手容易忽視的細節。我希望這本書能用清晰的邏輯和詳實的案例,把這些復雜的概念一一剖析清楚,讓我能夠更加遊刃有餘地處理那些對性能要求極高的場景。我已經迫不及待想要深入研究那些關於類加載、字節碼生成、JIT編譯等章節瞭,相信這些內容能夠填補我知識體係中的一些空白,讓我在解決疑難雜癥時更加得心應手。
評分這本《Java技術手冊(第6版)》對我來說,簡直就是一本“速成秘籍”。我最近接手瞭一個非常重要的項目,時間緊任務重,而我正好又需要快速地熟悉項目中的一些Java技術棧。市麵上有很多Java的書,但大多要麼過於基礎,要麼過於偏門,很難找到一本能夠快速幫我掌握核心技術、並且又足夠權威的書籍。我仔細研究瞭《Java技術手冊(第6版)》的介紹,發現它內容全麵,覆蓋瞭Java開發的各個方麵,而且是最新版的,這讓我非常放心。我特彆希望能夠快速找到關於Spring框架、數據庫連接池以及性能調優等章節,通過對照項目中的實際代碼,能夠快速理解並上手。我知道這本書的理論知識非常紮實,如果能結閤實際項目中的問題來閱讀,效果會事半功倍。我相信,有瞭這本書的幫助,我一定能順利完成這次挑戰。
評分對於像我這樣,在Java領域已經有一定經驗,但又希望不斷精進、緊跟技術潮流的開發者來說,《Java技術手冊(第6版)》這本書無疑是一個絕佳的選擇。我一直關注著Java技術的發展,也深知掌握最新的技術和最佳實踐的重要性。這本手冊的更新版本,讓我看到瞭其與時俱進的態度。我尤其看重其中關於Java 8+新特性、函數式編程、以及微服務架構相關的章節。這些都是當前Java開發領域的熱點和趨勢,理解透徹這些內容,對於保持自己在技術前沿至關重要。我希望通過閱讀這本書,能夠係統地梳理和學習這些新知識,並且能夠將它們應用到我的日常開發工作中,提升開發效率和代碼質量。這本書的深度和廣度,讓我有信心能夠不斷突破自己的技術瓶頸,成為一名更優秀的Java工程師。
評分好書,的確可以當做字典用,不錯不錯
評分還沒有看呢,東西不錯!
評分看到封麵買的,內容還行
評分對於java的基礎知識點有一個較為全麵的概括,不過對於知識點的細節處講的不夠深入
評分打摺很劃算,慢慢看,慢慢看
評分提高的
評分好書,的確可以當做字典用,不錯不錯
評分第一次網購第112頁到113頁破頁!換貨後,發現書角被磨掉瞭一大塊!這2次購物體驗夠差的!
評分一下買瞭八本,知識儲備,總體還不錯!
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有