Java領域有影響力和價值的著作之一,由擁有20多年教學與研究經驗的博學Java技術專家撰寫(獲Jolt大獎),與《Java編程思想》齊 名,10余年全球暢銷不衰,廣受好評。第10版根據Java SE 8更新,同時修正了第9版中的不足,系統講解了Java語言的核心概念、語法、重要特性和開發方法,包含大量案例,實踐性強。
本書共14章。第1章概述Java語言與其他程序設計語言不同的性能;第2章講解如何下載和安裝JDK及本書的程序示例;第3章介紹變量、循 環和簡單的函數;第4章講解類和封裝;第5章介紹繼承;第6章解釋接口和內部類;第7章討論異常處理,并給出大量實用的調試技巧;第8章概要介紹泛型程序 設計;第9章討論Java平臺的集合框架;第10章介紹GUI程序設計,討論如何建立窗口、如何在窗口中繪圖、如何利用幾何圖形繪圖、如何采用多種字體格 式化文本,以及如何顯示圖像;第11章詳細討論抽象窗口工具包的事件模型;第12章詳細討論Swing GUI工具包;第13章介紹如何將程序部署為應用或applet;第14章討論并發。本書還有一個附錄,其中列出了Java語言的保留字。
Java領域有影響力和價值的著作之一,與《Java編程思想》齊名,10余年全球暢銷不衰,廣受好評
根據Java SE 8更新,系統講解Java語言的核心概念、語法、重要特性和開發方法,包含大量案例,實踐性強 ??
一直以來,《Java核心技術》都被認為是面向高級程序員的經典教程和參考書,它內容翔實、客觀,不拖泥帶水,是想為實際應用編寫健壯 Java代碼的程序員的選。如今,本版進行了更新, 以反映近年來人們翹首以待、變革大的Java版本(Java SE 8)的內容。這一版經過重寫,并重新組織,闡釋了新的Java SE 8特性、慣用法和佳實踐,其中包含數百個示例程序,所有這些代碼都經過精心設計,不僅易于理解,也很容易實際應用。
本書為專業程序員解決實際問題而寫,可以幫助你深入了解Java語言和庫。在卷I中,Horstmann主要強調基本語言概念和現代用戶界面 編程基礎,深入介紹了從Java面向對象編程到泛型、集合、lambda表達式、Swing UI設計以及并發和函數式編程的新方法等內容。
通過閱讀本書,你將:
充分利用你現有的編程知識快速掌握核心Java語法
了解Java中封裝、類和繼承如何工作
掌握利用接口、內部類和lambda表達式來實現函數式編程
利用異常處理和有效調試提高程序健壯性
利用泛型和強類型編寫更安全、更可讀的程序
使用預建集合收集多個對象以便以后獲取
從頭開始掌握并發編程技術
利用標準Swing組件構建現代跨平臺GUI
部署可配置應用和applet,并通過互聯網
利用新的函數式技術簡化并發性和提高性能
如果你是一個博學程序員,剛剛轉向Java SE 8,本書是、實用的“伙伴”,不僅現在能幫助你,在未來的很多年還會繼續陪伴你前行。
凱 S. 霍斯特曼(Cay S. Horstmann),圣何塞州立大學計算機科學系教授、Java的倡導者,經常在開發人員會議上發表演講。他是《Core Java for the Impatient》(2015)《Java SE 8 for the Really Impatient》(2014)和《Scala for the lmpatient》(2012)的作者,這些書均由Addison-Wesley出版。他為專業程序員和計算機科學專業學生編寫過數十本圖書。
譯者序
前言
致謝
第1章Java程序設計概述 1
1.1Java程序設計平臺 1
1.2Java“白皮書”的關鍵術語 2
1.2.1簡單性 2
1.2.2面向對象 2
1.2.3分布式 3
1.2.4健壯性 3
1.2.5安全性 3
1.2.6體系結構中立 4
1.2.7可移植性 4
1.2.8解釋型 5
1.2.9高性能 5
1.2.10多線程 5
1.2.11動態性 5
1.3Java applet與Internet 6
1.4Java發展簡史 7
1.5關于Java的常見誤解 9
第2章Java程序設計環境 12
2.1安裝Java開發工具包 12
2.1.1下載JDK 12
2.1.2設置JDK 13
2.1.3安裝庫源文件和文檔 15
2.2使用命令行工具 16
2.3使用集成開發環境 18
2.4運行圖形化應用程序 21
2.5構建并運行applet 23
第3章Java的基本程序設計結構 28
3.1一個簡單的Java應用程序 28
3.2注釋 31
3.3數據類型 32
3.3.1整型 32
3.3.2浮點類型 33
3.3.3char類型 34
3.3.4Unicode和char類型 35
3.3.5boolean類型 35
3.4變量 36
3.4.1變量初始化 37
3.4.2常量 37
3.5運算符 38
3.5.1數學函數與常量 39
3.5.2數值類型之間的轉換 40
3.5.3強制類型轉換 41
3.5.4結合賦值和運算符 42
3.5.5自增與自減運算符 42
3.5.6關系和boolean運算符 42
3.5.7位運算符 43
3.5.8括號與運算符級別 44
3.5.9枚舉類型 45
3.6字符串 45
3.6.1子串 45
3.6.2拼接 46
3.6.3不可變字符串 46
3.6.4檢測字符串是否相等 47
3.6.5空串與Null串 48
3.6.6碼點與代碼單元 49
3.6.7String API 50
3.6.8閱讀聯機API文檔 52
3.6.9構建字符串 54
3.7輸入輸出 55
3.7.1讀取輸入 55
3.7.2格式化輸出 58
3.7.3文件輸入與輸出 61
3.8控制流程 63
3.8.1塊作用域 63
3.8.2條件語句 63
3.8.3循環 66
3.8.4確定循環 69
3.8.5多重選擇:switch語句 72
3.8.6中斷控制流程語句 74
3.9大數值 76
3.10數組 78
3.10.1for each循環 79
3.10.2數組初始化以及匿名數組 80
3.10.3數組拷貝 81
3.10.4命令行參數 81
3.10.5數組排序 82
3.10.6多維數組 85
3.10.7不規則數組 88
第4章對象與類 91
4.1面向對象程序設計概述 91
4.1.1類 92
4.1.2對象 93
4.1.3識別類 93
4.1.4類之間的關系 94
4.2使用預定義類 95
4.2.1對象與對象變量 95
4.2.2Java類庫中的LocalDate類 98
4.2.3更改器方法與訪問器方法 100
4.3用戶自定義類 103
4.3.1Employee類 103
4.3.2多個源文件的使用 105
4.3.3剖析Employee類 106
4.3.4從構造器開始 106
4.3.5隱式參數與顯式參數 108
4.3.6封裝的優點 109
4.3.7基于類的訪問權限 111
4.3.8私有方法 111
4.3.9f?inal實例域 112
4.4靜態域與靜態方法 112
4.4.1靜態域 112
4.4.2靜態常量 113
4.4.3靜態方法 114
4.4.4工廠方法 115
4.4.5main方法 115
4.5方法參數 118
4.6對象構造 123
4.6.1重載 123
4.6.2默認域初始化 123
4.6.3無參數的構造器 124
4.6.4顯式域初始化 125
4.6.5參數名 125
4.6.6調用另一個構造器 126
4.6.7初始化塊 127
4.6.8對象析構與f?inalize方法 130
4.7包 131
4.7.1類的導入 131
4.7.2靜態導入 133
4.7.3將類放入包中 133
4.7.4包作用域 136
4.8類路徑 137
4.8.1設置類路徑 139
4.9文檔注釋 140
4.9.1注釋的插入 140
4.9.2類注釋 140
4.9.3方法注釋 141
4.9.4域注釋 142
4.9.5通用注釋 142
4.9.6包與概述注釋 143
4.9.7注釋的抽取 143
4.10類設計技巧 144
第5章繼承 147
5.1類、超類和子類 147
5.1.1定義子類 147
5.1.2覆蓋方法 149
5.1.3子類構造器 150
5.1.4繼承層次 153
5.1.5多態 154
5.1.6理解方法調用 155
5.1.7阻止繼承:f?inal類和方法 157
5.1.8強制類型轉換 158
5.1.9抽象類 160
5.1.10受保護訪問 165
5.2Object:所有類的超類 166
5.2.1equals方法 166
5.2.2相等測試與繼承 167
5.2.3hashCode方法 170
5.2.4toString方法 172
5.3泛型數組列表 178
5.3.1訪問數組列表元素 180
5.3.2類型化與原始數組列表的兼容性 183
5.4對象包裝器與自動裝箱 184
5.5參數數量可變的方法 187
5.6枚舉類 188
5.7反射 190
5.7.1Class類 190
5.7.2捕獲異常 192
5.7.3利用反射分析類的能力 194
5.7.4在運行時使用反射分析對象 198
5.7.5使用反射編寫泛型數組代碼 202
5.7.6調用任意方法 205
5.8繼承的設計技巧 208
第6章接口、lambda表達式與內部類 211
6.1接口 211
6.1.1接口概念 211
6.1.2接口的特性 217
6.1.3接口與抽象類 218
6.1.4靜態方法 218
6.1.5默認方法 219
6.1.6解決默認方法沖突 220
6.2接口示例 222
6.2.1接口與回調 222
6.2.2Comparator接口 224
6.2.3對象克隆 225
6.3lambda表達式 231
6.3.1為什么引入lambda表達式 231
6.3.2lambda表達式的語法 232
6.3.3函數式接口 234
6.3.4方法引用 235
6.3.5構造器引用 237
6.3.6變量作用域 237
6.3.7處理lambda表達式 239
6.3.8再談Comparator 242
6.4內部類 242
6.4.1使用內部類訪問對象狀態 244
6.4.2內部類的特殊語法規則 247
6.4.3內部類是否有用、必要和安全 248
6.4.4局部內部類 250
6.4.5由外部方法訪問變量 250
6.4.6匿名內部類 252
6.4.7靜態內部類 255
6.5 258
6.5.1何時使用 259
6.5.2創建對象 259
6.5.3類的特性 262
第7章異常、斷言和日志 264
7.1處理錯誤 264
7.1.1異常分類 265
7.1.2聲明受查異常 267
7.1.3如何拋出異常 269
7.1.4創建異常類 270
7.2捕獲異常 271
7.2.1捕獲異常 271
7.2.2捕獲多個異常 273
7.2.3再次拋出異常與異常鏈 274
7.2.4f?inally子句 275
7.2.5帶資源的try語句 278
7.2.6分析堆棧軌跡元素 280
7.3使用異常機制的技巧 282
7.4使用斷言 285
7.4.1斷言的概念 285
7.4.2啟用和禁用斷言 286
7.4.3使用斷言完成參數檢查 287
7.4.4為文檔假設使用斷言 288
7.5記錄日志 289
7.5.1基本日志 289
7.5.2高級日志 289
7.5.3修改日志管理器配置 291
7.5.4本地化 292
7.5.5處理器 293
7.5.6過濾器 296
7.5.7格式化器 296
7.5.8日志記錄說明 296
7.6調試技巧 304
第8章泛型程序設計 309
8.1為什么要使用泛型程序設計 309
8.1.1類型參數的好處 309
8.1.2誰想成為泛型程序員 310
8.2定義簡單泛型類 311
8.3泛型方法 313
8.4類型變量的限定 314
8.5泛型代碼和虛擬機 316
8.5.1類型擦除 316
8.5.2翻譯泛型表達式 317
8.5.3翻譯泛型方法 318
8.5.4調用遺留代碼 319
8.6約束與局限性 320
8.6.1不能用基本類型實例化類型參數 320
8.6.2運行時類型查詢只適用于原始類型 321
8.6.3不能創建參數化類型的數組 321
8.6.4Varargs警告 322
8.6.5不能實例化類型變量 323
8.6.6不能構造泛型數組 323
8.6.7泛型類的靜態上下文中類型變量無效 325
8.6.8不能拋出或捕獲泛型類的實例 325
8.6.9可以消除對受查異常的檢查 326
8.6.10注意擦除后的沖突 327
8.7泛型類型的繼承規則 328
8.8通配符類型 330
8.8.1通配符概念 330
8.8.2通配符的超類型限定 331
8.8.3無限定通配符 334
8.8.4通配符捕獲 334
8.9反射和泛型 337
8.9.1泛型Class類 337
8.9.2使用Class參數進行類型匹配 338
8.9.3虛擬機中的泛型類型信息 338
第9章集合 344
9.1Java集合框架 344
9.1.1將集合的接口與實現分離 344
9.1.2Collection接口 346
9.1.3迭代器 347
9.1.4泛型實用方法 349
9.1.5集合框架中的接口 352
9.2具體的集合 353
9.2.1鏈表 355
9.2.2數組列表 362
9.2.3散列集 363
9.2.4樹集 366
9.2.5隊列與雙端隊列 369
9.2.6優先級隊列 371
9.3映射 372
9.3.1基本映射操作 372
9.3.2更新映射項 375
9.3.3映射視圖 376
9.3.4弱散列映射 377
9.3.5鏈接散列集與映射 378
9.3.6枚舉集與映射 379
9.3.7標識散列映射 380
9.4視圖與包裝器 381
9.4.1輕量級集合包裝器 382
9.4.2子范圍 382
9.4.3不可修改的視圖 383
9.4.4同步視圖 384
9.4.5受查視圖 384
9.4.6關于可選操作的說明 385
9.5算法 388
9.5.1排序與混排 389
9.5.2二分查找 391
9.5.3簡單算法 392
9.5.4批操作 394
9.5.5集合與數組的轉換 394
9.5.6編寫自己的算法 395
9.6遺留的集合 396
9.6.1Hashtable類 397
9.6.2枚舉 397
9.6.3屬性映射 398
9.6.4棧 399
9.6.5位集 399
第10章圖形程序設計 403
10.1Swing概述 403
10.2創建框架 407
10.3框架定位 409
10.3.1框架屬性 411
10.3.2確定合適的框架大小 411
10.4在組件中顯示信息 415
10.5處理2D圖形 419
10.6使用顏色 426
10.7文本使用特殊字體 429
10.8顯示圖像 435
第11章事件處理 439
11.1事件處理基礎 439
11.1.1實例:處理按鈕點擊事件 441
11.1.2簡潔地指定監聽器 445
11.1.3實例:改變觀感 447
11.1.4適配器類 450
11.2動作 453
11.3鼠標事件 459
11.4AWT事件繼承層次 465
11.4.1語義事件和底層事件 466
第12章Swing用戶界面組件 469
12.1Swing和模型–視圖–控制器設計模式 469
12.2布局管理概述 474
12.3文本輸入 481
12.4選擇組件 488
12.5菜單 504
12.6復雜的布局管理 518
12.7對話框 541
12.8GUI程序排錯 573
第13章部署Java應用程序 580
13.1JAR文件 580
13.2應用項的存儲 586
13.3服務加載器 596
13.4applet 598
13.5Java Web Start 614
第14章并發 624
14.1什么是線程 624
14.2中斷線程 632
14.3線程狀態 635
14.4線程屬性 638
14.5同步 640
14.6阻塞隊列 668
14.7線程安全的集合 673
14.8Callable與Future 681
14.9執行器 685
14.10同步器 696
14.11線程與Swing 698
附錄AJava關鍵字 710
一本很全面的java基礎知識的書,有很多很有用的c++注釋,難度上比java編程思想簡單的多,可以實時查閱
第一次收到時折損較嚴重,個人有些許強迫癥,因此申請售后做換貨處理,不到半小時就通過了。第二天就收到了快遞的消息,拿到了書!!濟南到青島,效率太高了,驚訝!可惜的是第二本也有折損……哎,愛書,可以理解在內頁做筆記卻難以接受外表硬傷不想折騰了,希望當當在發書的時候能包好點,是要環保,那也可以用帶緩沖氣泡的塑封包裝啊,或者是紙箱到后可以由快遞員與買家協商留下紙箱以作循環~
非常好的一本書籍,結合了c++的語法進行對比,并且還有講一些代碼編寫上注意的地方,但是有的章節可能是翻譯的問題感覺沒有弄懂
送的很快,就是可能和另一本書買重了。都是基礎知識
看了很久還沒有看完,對初學者來說是很好的一本書.
老公讓買的工具書,當當有折扣,實體店沒有,老公說不錯。一直在當當買書。
大體上還是很不錯的,就是書腳處有一些被摩的壞了
內容很新,對全面了解java基礎知識很有幫助
書挺好的,和thinking in java兩本書一起學習
當初不想學Java,這次因為要弄android,就挑著買了本這個,感覺還是不錯的,講的很清楚。
經典中的經典,想學好java這本書你是幾乎是必看的。
書不錯,但對于零基礎的我來說感覺有點難懂,不過我相信過后肯定會對我學習有很大的幫助的!
有點小貴,是正版,買的時候沒有滿減活動,花了94大洋。希望對Java學習有幫助,加油!
很好,第二天就送到了。。沒找到卷二的第十版,先買卷一看著吧
韻達送過來的,書的正面有一個很小的坑,總體來說很滿意
贊贊贊贊贊贊贊贊贊贊贊贊贊贊絕對絕對肯定看到你的看法嗎
書感覺是正版的,就是包裝太簡單了吧,書角都被擠的翹起來了
書不錯,但是應該是在快遞過程中受到了非書的待遇,我拿到時有褶皺了,應該是受到了重擊,希望快遞公司斯文點。
沒有什么折損,非常好,送貨速度也非常快,因為有些事情稍微耽擱了,快遞小哥也沒有催我,很滿意
這本書介紹的比較詳盡,淺顯,適合剛入門的學習
書是好書,紙張也不錯。就是目前這個水平看不太懂,還是視頻里講的通俗易懂。
好 雖然有點小貴 但是真的很有用處 讓我了解到了JAVA 比學校的教科書好多了
書挺好的,買了卷二了,lambda表達式挺煩人的,書最后幾章的代碼全是lambda表達式,其他內容挺好的
快遞還可以,書有點折痕,但是正版。內容滿分,我大一上學期java 沒學好,買來后,感覺很棒,講的很詳細,推薦新入門的買這本。
這本書適合學過c/c++的入門Java~里面有Java和c/c++的對比介紹。
內容很新,解釋很詳細,堪比C++ Primer Plus,終于找到一本令我比較滿意的書。
第22頁 靜態方法不能調用動態方法 所以 在 class ImageViewFrame的前面加上static
首先,包裝就一層塑料袋,還好沒有什么破損,快遞也是醉了,周日就應該送到的,結果還送錯地方了,到了周二才送到,和淘寶買的速度差不多了,還比淘寶貴很多
Java學習的好教材,只是這次活動購買到收貨好慢哦
大力推薦,java入門最好書,應該沒有之一,比什么從入門到精通好多了
書還可以,知識點較為全面,我覺得先看視頻,邊看邊實踐,書是用來反復讀加深理解的