Java語言規範

Java語言規範 pdf epub mobi txt 電子書 下載2025

出版者:機械工業齣版社
作者:詹姆斯·高斯林 (James Gosling)
出品人:
頁數:513
译者:陳昊鵬
出版時間:2016-1-1
價格:CNY 129.00
裝幀:平裝
isbn號碼:9787111523994
叢書系列:計算機科學叢書
圖書標籤:
  • Java
  • 計算機
  • 軟件開發
  • 經典
  • java
  • AA-Java
  • 計算機科學
  • 最近想讀
  • Java
  • 編程
  • 語言
  • 規範
  • 基礎
  • 開發
  • 語法
  • 教程
  • 麵嚮對象
  • 集閤
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

Oracle官方發布,Java編程語言及規範創建人撰寫,國內資深Java技術專傢翻譯,Amazon暢銷書!

基於最新Java SE 8,完整且準確地闡述Java編程語言及其規範,是深度瞭解Java語言及其技術細節的權威參考書。

本書由Java技術的發明者編寫,是Java編程語言的權威性技術指南。如果你想知道Java語言構造的精確含義以及各種技術細節,本書是最好的資源。

本書全麵、準確而詳細地討論瞭Java編程語言,是Java語言最新版本的規範。全書從Java最基礎的文法、類型、變量到高級特性lambda錶達式、綫程與鎖等進行瞭詳盡闡述。該規範針對每一項語言特性都給齣瞭代錶性的示例程序,以幫助讀者更容易地理解和掌握這些特性。通過閱讀本規範,可以全麵係統地瞭解Java語言的各項特性,為充分利用這些特性來編寫齣更加高效簡潔的Java程序提供幫助。讀者還可以從Oracle的Java官方網站上看到本書的最新進展和修訂,以瞭解Java語言的最新發展動嚮。

本書可作為高等院校Java語言程序設計等相關專業的學習手冊,也可作為Java語言愛好者的參考資料。

本書主要內容

全麵反映Java語言的整個發展曆程。

詳細講述Java SE 8的語法、語義和結構。

徹底覆蓋Java SE 8的主要改進,包括lambda錶達式、方法引用、缺省方法等。

充分解決如何提升JAVA語言中最流行的特性之一——注解的效用。

包含寶貴的見解,區分JAVA的正式規則和真實的編譯器行為。

對每一個使用Java語言進行企業級開發的程序員都是不可或缺的資源。

著者簡介

詹姆斯·高斯林

(James Gosling)

軟件專傢,Java編程語言的共同創始人之一,曾先後為Sun公司、Oracle公司和Google公司工作,是計算機行業最著名的程序員之一。他於1977年獲得瞭加拿大卡爾加裏大學計算機科學學士學位,1983年獲得瞭美國卡內基梅隆大學計算機科學博士學位。2013年,Gosling博士被選為ACM Fellow;2015年,獲得IEEE 馮諾伊曼奬。

圖書目錄

齣版者的話
譯者序
前言
第1章 概述 1
1.1 本書結構 1
1.2 樣例程序 4
1.3 錶示法 4
1.4 與預定義的類和接口的關係 4
1.5 反饋 5
1.6 參考文獻 5
第2章 文法 6
2.1 上下文無關文法 6
2.2 詞法 6
2.3 句法 6
2.4 文法錶示法 6
第3章 詞法結構 9
3.1 Unicode 9
3.2 詞法翻譯 10
3.3 Unicode轉義字符 10
3.4 行終止符 11
3.5 輸入元素和符號 12
3.6 空白字符 12
3.7 注釋 13
3.8 標識符 14
3.9 關鍵字 15
3.10 字麵常量 15
3.10.1 整數字麵常量 15
3.10.2 浮點數字麵常量 19
3.10.3 布爾字麵常量 21
3.10.4 字符字麵常量 21
3.10.5 字符串字麵常量 22
3.10.6 字符和字符串字麵常量的
轉義序列 23
3.10.7 空字麵常量 24
3.11 分隔符 24
3.12 操作符 24
第4章 類型、值和變量 25
4.1 類型和值的種類 25
4.2 簡單類型和值 25
4.2.1 整數類型和值 26
4.2.2 整數操作 26
4.2.3 浮點數類型、格式和值 27
4.2.4 浮點數操作 29
4.2.5 boolean類型和布爾值 31
4.3 引用類型和值 32
4.3.1 對象 33
4.3.2 Object類 35
4.3.3 String類 35
4.3.4 當引用類型相同時 35
4.4 類型變量 36
4.5 參數化類型 37
4.5.1 參數化類型的類型引元 38
4.5.2 參數化類型的成員和構造器 40
4.6 類型擦除 40
4.7 可具化類型 41
4.8 原生類型 42
4.9 交集類型 45
4.10 子類型化 45
4.10.1 簡單類型之間的子類型化 46
4.10.2 類與接口類型之間的子類型化 46
4.10.3 數組類型之間的子類型化 47
4.10.4 最低上邊界 47
4.11 使用類型之處 49
4.12 變量 52
4.12.1 簡單類型的變量 52
4.12.2 引用類型的變量 52
4.12.3 變量的種類 54
4.12.4 final變量 55
4.12.5 變量的初始值 56
4.12.6 類型、類和接口 57
第5章 類型轉換與上下文 59
5.1 轉換的種類 61
5.1.1 標識轉換 61
5.1.2 拓寬簡單類型轉換 61
5.1.3 窄化簡單類型轉換 62
5.1.4 拓寬和窄化簡單類型轉換 64
5.1.5 拓寬引用類型轉換 64
5.1.6 窄化引用類型轉換 64
5.1.7 裝箱轉換 65
5.1.8 拆箱轉換 66
5.1.9 非受檢轉換 67
5.1.10 捕獲轉換 67
5.1.11 字符串轉換 69
5.1.12 被禁止的轉換 69
5.1.13 值集轉換 70
5.2 賦值上下文 70
5.3 方法調用上下文 74
5.4 字符串上下文 75
5.5 強製類型轉換上下文 75
5.5.1 引用類型強製類型轉換 77
5.5.2 受檢強製類型轉換和非受檢強製類型轉換 79
5.5.3 運行時的受檢強製類型轉換 80
5.6 數字上下文 81
5.6.1 一元數字提升 82
5.6.2 二元數字提升 83
第6章 名字 84
6.1 聲明 84
6.2 名字與標識符 89
6.3 聲明的作用域 91
6.4 遮蔽和遮掩 93
6.4.1 遮蔽 94
6.4.2 遮掩 96
6.5 確定名字的含義 97
6.5.1 根據上下文的名字的句法分類 98
6.5.2 對上下文歧義名字的重分類 100
6.5.3 包名的含義 101
6.5.4 PackageOrTypeNames的含義 102
6.5.5 類型名的含義 102
6.5.6 錶達式名的含義 103
6.5.7 方法名的含義 105
6.6 訪問控製 106
6.6.1 確定可訪問性 107
6.6.2 受保護訪問權限的細節 110
6.7 完全限定名和規範名 111
第7章 包 113
7.1 包成員 113
7.2 主機對包的支持 114
7.3 編譯單元 115
7.4 包聲明 116
7.4.1 具名包 116
7.4.2 不具名包 116
7.4.3 包的可觀察性 117
7.5 導入聲明 117
7.5.1 單類型導入聲明 118
7.5.2 按需類型導入聲明 119
7.5.3 單靜態導入聲明 120
7.5.4 按需靜態導入聲明 120
7.6 頂層類型聲明 121
第8章 類 123
8.1 類聲明 124
8.1.1 類修飾符 124
8.1.2 泛化類和類型參數 126
8.1.3 內部類和包圍實例 128
8.1.4 超類和子類 130
8.1.5 超接口 132
8.1.6 類體和成員聲明 134
8.2 類成員 135
8.3 域聲明 138
8.3.1 域修飾符 141
8.3.2 域的初始化 145
8.3.3 在域初始化過程中的嚮前引用 146
8.4 方法聲明 148
8.4.1 形參 149
8.4.2 方法簽名 152
8.4.3 方法修飾符 152
8.4.4 泛化方法 156
8.4.5 方法的結果 157
8.4.6 方法拋齣異常 157
8.4.7 方法體 158
8.4.8 繼承、覆蓋和隱藏 159
8.4.9 重載 166
8.5 成員類型聲明 168
8.5.1 靜態成員類型聲明 169
8.6 實例初始化器 169
8.7 靜態初始化器 169
8.8 構造器聲明 170
8.8.1 形參 170
8.8.2 構造器簽名 171
8.8.3 構造器修飾符 171
8.8.4 泛化構造器 172
8.8.5 構造器拋齣異常 172
8.8.6 構造器的類型 172
8.8.7 構造器體 172
8.8.8 構造器重載 176
8.8.9 缺省構造器 176
8.8.10 阻止類的實例化 177
8.9 枚舉類型 177
8.9.1 枚舉常量 178
8.9.2 枚舉體聲明 178
8.9.3 枚舉成員 180
第9章 接口 184
9.1 接口聲明 184
9.1.1?接口修飾符 185
9.1.2 泛化接口和類型參數 185
9.1.3 超接口和子接口 186
9.1.4 接口體和成員聲明 187
9.2 接口成員 187
9.3 域(常量)聲明 187
9.3.1 接口中域的初始化 189
9.4 方法聲明 189
9.4.1 繼承和覆蓋 190
9.4.2 重載 193
9.4.3 接口方法體 193
9.5 成員類型聲明 193
9.6 注解類型 194
9.6.1 注解類型元素 195
9.6.2 注解類型元素的缺省值 197
9.6.3 可重復的注解類型 198
9.6.4 預定義的注解類型 200
9.7 注解 204
9.7.1 普通注解 205
9.7.2 標記注解 207
9.7.3 單元素注解 207
9.7.4 注解可以齣現在何處 208
9.7.5 同種類型的多重注解 211
9.8 函數型接口 212
9.9  函數類型 214
第10章 數組 218
10.1 數組類型 218
10.2 數組變量 219
10.3 數組創建 220
10.4 數組訪問 220
10.5 數組存儲異常 220
10.6 數組初始化器 221
10.7 數組成員 222
10.8 數組的Class對象 223
10.9 字符數組不是String 224
第11章 異常 225
11.1 異常的種類和成因 225
11.1.1 異常的種類 225
11.1.2 異常的成因 226
11.1.3 異步異常 226
11.2 異常的編譯時檢查 227
11.2.1 錶達式異常分析 228
11.2.2 語句異常分析 228
11.2.3 異常檢查 229
11.3 異常的運行時處理 230
第12章 執行 233
12.1 Java虛擬機啓動 233
12.1.1 加載Test類 233
12.1.2 鏈接Test:校驗、準備、(可選的)解析 233
12.1.3 初始化Test:執行初始化器 234
12.1.4 調用Test.main 234
12.2 加載類和接口 235
12.2.1 加載過程 235
12.3 鏈接類和接口 236
12.3.1 二進製錶示的校驗 236
12.3.2 類或接口類型的準備 236
12.3.3 符號引用的解析 237
12.4 初始化類和接口 237
12.4.1 當初始化發生時 238
12.4.2 詳細的初始化過程 239
12.5 創建新的類實例 241
12.6 類實例的終結 243
12.6.1 實現終結 244
12.6.2 與內存模型的交互 245
12.7 卸載類和接口 246
12.8 程序退齣 247
第13章 二進製兼容性 248
13.1 二進製形式 249
13.2 二進製兼容性到底是什麼 252
13.3 包的演化 252
13.4 類的演化 253
13.4.1 abstract類 253
13.4.2 final類 253
13.4.3 public類 253
13.4.4 超類和超接口 253
13.4.5 類的類型參數 254
13.4.6 類體和成員聲明 255
13.4.7 對成員和構造器的訪問權限 256
13.4.8 域聲明 257
13.4.9 final域和static
常量變量 258
13.4.10 static域 260
13.4.11 transient域 260
13.4.12 方法和構造器聲明 260
13.4.13 方法和構造器的類型參數 261
13.4.14 方法和構造器的形式參數 261
13.4.15 方法返迴類型 262
13.4.16 abstract方法 262
13.4.17 final方法 262
13.4.18 native方法 263
13.4.19 static方法 263
13.4.20 synchronized方法 263
13.4.21 方法和構造器的拋齣物 263
13.4.22 方法和構造器體 263
13.4.23 方法和構造器的重載 264
13.4.24 方法覆蓋 264
13.4.25 靜態初始化器 264
13.4.26 枚舉的演化 265
13.5 接口的演化 265
13.5.1 public接口 265
13.5.2 超接口 265
13.5.3 接口成員 265
13.5.4 接口的類型參數 266
13.5.5 域聲明 266
13.5.6 接口方法聲明 266
13.5.7 注解類型的演化 267
第14章 塊和語句 268
14.1 語句的正常結束和猝然結束 268
14.2 塊 269
14.3 局部類聲明 269
14.4 局部變量聲明語句 270
14.4.1 局部變量聲明符和類型 271
14.4.2 局部變量聲明的執行 271
14.5 語句 271
14.6 空語句 272
14.7 標號語句 273
14.8 錶達式語句 274
14.9 if語句 274
14.9.1 if-then語句 274
14.9.2 if-then-else語句 275
14.10 assert語句 275
14.11 switch語句 277
14.12 while語句 280
14.12.1 while語句的猝然結束 280
14.13 do語句 281
14.13.1 do語句的猝然結束 281
14.14 for語句 282
14.14.1 基本for語句 282
14.14.2 增強for語句 284
14.15 break語句 285
14.16 continue語句 287
14.17 return語句 288
14.18 throw語句 289
14.19 synchronized語句 290
14.20 try語句 291
14.20.1 try-catch的執行 293
14.20.2 try-finally和try-catch-finally的執行 294
14.20.3 帶資源的try 296
14.21 不可達語句 299
第15章 錶達式 303
15.1 計算、錶示和結果 303
15.2 錶達式的形式 303
15.3 錶達式的類型 304
15.4 FP-嚴格的錶達式 304
15.5 錶達式和運行時檢查 305
15.6 計算的正常和猝然結束 306
15.7 計算順序 307
15.7.1 首先計算左操作數 307
15.7.2 在操作之前計算操作數 308
15.7.3 計算遵循括號和優先級 309
15.7.4 引元列錶是自左嚮右計算的 310
15.7.5 其他錶達式的計算順序 310
15.8 基本錶達式 311
15.8.1 詞法上的字麵常量 312
15.8.2 類字麵常量 312
15.8.3 this 313
15.8.4 限定的this 313
15.8.5 帶括號的錶達式 314
15.9 類實例創建錶達式 314
15.9.1 確定要實例化的類 315
15.9.2 確定包圍實例 316
15.9.3 選擇構造器及其引元 317
15.9.4 類實例創建錶達式的運行時計算 319
15.9.5 匿名類聲明 320
15.10 數組創建和訪問錶達式 321
15.10.1 數組創建錶達式 321
15.10.2 數組創建錶達式的運行時執行 322
15.10.3 數組訪問錶達式 324
15.10.4 數組訪問錶達式的運行時計算 324
15.11 域訪問錶達式 326
15.11.1 使用基本錶達式訪問域 326
15.11.2 使用super訪問超類成員 328
15.12 方法調用錶達式 329
15.12.1 編譯時的步驟1:確定要搜索的類或接口 330
15.12.2 編譯時的步驟2:確定方法簽名 332
15.12.3 編譯時的步驟3:選中的方法是否閤適 342
15.12.4 方法調用的運行時計算 343
15.13 方法引用錶達式 350
15.13.1 方法引用的編譯時聲明 352
15.13.2 方法引用的類型 355
15.13.3 方法引用的運行時計算 356
15.14 後綴錶達式 359
15.14.1 錶達式名字 359
15.14.2 後綴遞增操作符++ 359
15.14.3 後綴遞減操作符-- 359
15.15 一元操作符 360
15.15.1 前綴遞增操作符++ 361
15.15.2 前綴遞減操作符-- 361
15.15.3 一元加號操作符+ 362
15.15.4 一元減號操作符- 362
15.15.5 按位取反操作符~ 362
15.15.6 邏輯取反操作符! 362
15.16 強製類型轉換錶達式 363
15.17 乘除操作符 364
15.17.1 乘法操作符* 364
15.17.2 除法操作符/ 365
15.17.3 取餘操作符% 366
15.18 加減操作符 367
15.18.1 字符串連接操作符+ 368
15.18.2 用於數字類型的加減操作符 (+和-) 369
15.19 移位操作符 371
15.20 關係操作符 371
15.20.1 數字比較操作符<、<=、>和>= 372
15.20.2 類型比較操作符instanceof 372
15.21 判等操作符 373
15.21.1 數字判等操作符==和!= 373
15.21.2 布爾判等操作符==和!= 374
15.21.3 引用判等操作符==和!= 374
15.22 位操作符與邏輯操作符 375
15.22.1 整數位操作符&、^和| 375
15.22.2 布爾邏輯操作符&、^和| 376
15.23 條件與操作符&& 376
15.24 條件或操作符|| 376
15.25 條件操作符? : 377
15.25.1 布爾條件錶達式 381
15.25.2 數字型條件錶達式 381
15.25.3 引用條件錶達式 382
15.26 賦值操作符 383
15.26.1 簡單賦值操作符= 383
15.26.2 復閤賦值操作符 387
15.27 lambda錶達式 391
15.27.1 lambda參數 393
15.27.2 lambda體 394
15.27.3 lambda錶達式的類型 397
15.27.4 lambda錶達式的運行時計算 398
15.28 常量錶達式 399
第16章 明確賦值 400
16.1 明確賦值和錶達式 404
16.1.1 布爾常量錶達式 404
16.1.2 條件與操作符&& 404
16.1.3 條件或操作符|| 404
16.1.4 邏輯取反操作符! 405
16.1.5 條件操作符? : 405
16.1.6 其他boolean類型的錶達式 405
16.1.7 賦值錶達式 406
16.1.8 操作符++和-- 406
16.1.9 其他錶達式 406
16.2 明確賦值與語句 407
16.2.1 空語句 407
16.2.2 塊 407
16.2.3 局部類聲明語句 408
16.2.4 局部變量聲明語句 408
16.2.5 標號語句 409
16.2.6 錶達式語句 409
16.2.7 if語句 409
16.2.8 assert語句 409
16.2.9 switch語句 410
16.2.10 while語句 410
16.2.11 do語句 410
16.2.12 for語句 411
16.2.13 break、continue、return和throw語句 412
16.2.14 synchronized語句 412
16.2.15 try語句 412
16.3 明確賦值與參數 413
16.4 明確賦值與數組初始化器 413
16.5 明確賦值與枚舉常量 413
16.6 明確賦值與匿名類 414
16.7 明確賦值與成員類型 414
16.8 明確賦值與靜態初始化器 414
16.9 明確賦值、構造器和實例初始化器 415
第17章 綫程與鎖 416
17.1 同步 416
17.2 等待集和通知 417
17.2.1 等待 417
17.2.2 通知 418
17.2.3 中斷 418
17.2.4 等待、通知和中斷的交互 418
17.3 睡眠和讓步 419
17.4 內存模型 419
17.4.1 共享變量 421
17.4.2 動作 421
17.4.3 程序和程序順序 422
17.4.4 同步順序 422
17.4.5 “之前發生”順序 423
17.4.6 執行 425
17.4.7 良構執行 425
17.4.8 執行和因果關係要求 426
17.4.9 可觀察的行為和不終止的執行 428
17.5 final域的語義 429
17.5.1 final域的語義 430
17.5.2 在構造階段讀final域 430
17.5.3 對final域的後續修改 431
17.5.4 寫受保護的域 432
17.6 字撕裂 432
17.7 double和long的非原子化處理 433
第18章 類型推斷 434
18.1 概念與錶示法 435
18.1.1 推斷變量 435
18.1.2 約束公式 435
18.1.3 邊界 435
18.2 歸納 436
18.2.1 錶達式可兼容性約束 437
18.2.2 類型可兼容性約束 440
18.2.3 子類型化約束 440
18.2.4 類型相等性約束 442
18.2.5 受檢異常約束 442
18.3 閤並 443
18.3.1 互補的邊界對 444
18.3.2 涉及捕獲轉換的邊界 444
18.4 解析 445
18.5 推斷的使用 446
18.5.1 調用可應用性的推斷 447
18.5.2 調用類型的推斷 448
18.5.3 函數型接口的參數化版本推斷 451
18.5.4 更具體方法的推斷 452
第19章 語法 454
索引 470
· · · · · · (收起)

讀後感

評分

这本书实际上非常不错,因为是语言规范,对于java语言的任何细节都涉及到了,关于语法层面的任何问题都可以在这本书上找到答案(这样在遇到语法上的问题时,有时直接查这本书比在网上到处搜的效率要高)。翻译的其实还不错,当然了,正如书中的前言所说,该书不适合入门学习,...

評分

为何不买《Think in java》,不是不买而是时候未到。小孩识字“apple”,老师没有开篇大论“苹果”是什么颜色,产地是哪里,也没有说与乔布斯的那个“apple”有什么不同,统统的没有。而是拿着苹果的挂图,说这个就是“苹果”,“苹果”两字这样写。如果以前学习过程序的,知道Str...  

評分

这本书实际上非常不错,因为是语言规范,对于java语言的任何细节都涉及到了,关于语法层面的任何问题都可以在这本书上找到答案(这样在遇到语法上的问题时,有时直接查这本书比在网上到处搜的效率要高)。翻译的其实还不错,当然了,正如书中的前言所说,该书不适合入门学习,...

評分

这本书实际上非常不错,因为是语言规范,对于java语言的任何细节都涉及到了,关于语法层面的任何问题都可以在这本书上找到答案(这样在遇到语法上的问题时,有时直接查这本书比在网上到处搜的效率要高)。翻译的其实还不错,当然了,正如书中的前言所说,该书不适合入门学习,...

評分

为何不买《Think in java》,不是不买而是时候未到。小孩识字“apple”,老师没有开篇大论“苹果”是什么颜色,产地是哪里,也没有说与乔布斯的那个“apple”有什么不同,统统的没有。而是拿着苹果的挂图,说这个就是“苹果”,“苹果”两字这样写。如果以前学习过程序的,知道Str...  

用戶評價

评分

沒怎麼讀,如果要設計編程語言的建議看看。

评分

沒怎麼讀,如果要設計編程語言的建議看看。

评分

感覺翻譯的有點不通順,可能是這本書比較枯燥,大概讀瞭一下,以後遇到對應的問題再來讀或許比較好理解。

评分

感覺翻譯的有點不通順,可能是這本書比較枯燥,大概讀瞭一下,以後遇到對應的問題再來讀或許比較好理解。

评分

太難瞭,後麵的部分完全看不懂。

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有