新书推荐 | Java核心技术卷Ⅰ:基础知识(原书第11版)
新書(shū)推薦
《Java核心技術(shù)卷Ⅰ:基礎(chǔ)知識(shí)(原書(shū)第11版)》
長(zhǎng)按二維碼
了解及購(gòu)買
全新第11版!針對(duì)Java SE9、10、11全面更新!Java領(lǐng)域極具影響力和價(jià)值的著作之一,與《Java編程思想》齊名,10余年全球暢銷不衰,廣受好評(píng)。
內(nèi)容簡(jiǎn)介
本書(shū)由擁有20多年教學(xué)與研究經(jīng)驗(yàn)的資深Java技術(shù)專家撰寫(獲Jolt大獎(jiǎng)),是程序員的優(yōu)選Java指南。本版針對(duì)Java SE 9、10和 11全面更新。
全書(shū)共12章。
第1章概述Java語(yǔ)言的特色功能;
第2章詳細(xì)論述如何下載和安裝JDK以及本書(shū)的程序示例;
第3章開(kāi)始討論Java 語(yǔ)言,包括變量、循環(huán)和簡(jiǎn)單的函數(shù);
第4章介紹面向?qū)ο髢纱蠡袠O要的一個(gè)概念——封裝,以及Java語(yǔ)言實(shí)現(xiàn)封裝的機(jī)制,即類與方法;
第5章介紹面向?qū)ο蟮牧硪粋€(gè)重要概念——繼承,繼承使程序員可以使用現(xiàn)有的類,并根據(jù)需要進(jìn)行修改;
第6章展示如何使用Java的接口(可幫助你充分獲得Java的完全面向?qū)ο蟪绦蛟O(shè)計(jì)能力)、lambda表達(dá)式(用來(lái)表述可以在以后某個(gè)時(shí)間點(diǎn)執(zhí)行的代碼塊)和內(nèi)部類;
第7章討論異常處理,并給出大量實(shí)用的調(diào)試技巧;
第8章概要介紹泛型程序設(shè)計(jì),使程序更可讀、更安全;
第9章討論Java平臺(tái)的集合框架,以及如何充分利用內(nèi)建的標(biāo)準(zhǔn)集合;
第10章介紹GUI程序設(shè)計(jì)(包括如何建立窗口、如何在窗口中繪圖、如何利用幾何圖形繪圖、如何采用多種字體格式化文本,以及如何顯示圖像)和編寫代碼來(lái)響應(yīng)事件(如鼠標(biāo)點(diǎn)擊事件和按鍵事件);
第11章詳細(xì)討論Swing GUI工具包,以建立跨平臺(tái)的圖形用戶界面,包括各種按鈕、文本組件、邊框、滑塊、列表框、菜單以及對(duì)話框的有關(guān)內(nèi)容;
第12章討論并發(fā)。本書(shū)最后還有一個(gè)附錄,其中列出了Java語(yǔ)言的保留字。
作者簡(jiǎn)介
凱?S.霍斯特曼(Cay S. Horstmann )圣何塞州立大學(xué)計(jì)算機(jī)科學(xué)系教授、Java的倡導(dǎo)者。他是《Java核心技術(shù)》兩卷本的作者,并著有《Core Java SE 9 for the Impatient, Second Edition》 (Addison-Wesley 2018)和《Scala for the Impatient, Second Edition》(Addison- Wesley, 2017)。他還為專業(yè)程序員和計(jì)算機(jī)科學(xué)專業(yè)的學(xué)生撰寫過(guò)數(shù)十本其他圖書(shū)。
目錄
譯者序
前言
致謝
第1章 Java程序設(shè)計(jì)概述 ?1
1.1 Java程序設(shè)計(jì)平臺(tái) ?1
1.2 Java“白皮書(shū)”的關(guān)鍵術(shù)語(yǔ) ?2
1.2.1 簡(jiǎn)單性 ?2
1.2.2 面向?qū)ο??3
1.2.3 分布式 ?3
1.2.4 健壯性 ?3
1.2.5 安全性 ?3
1.2.6 體系結(jié)構(gòu)中立 ?4
1.2.7 可移植性 ?4
1.2.8 解釋型 ?5
1.2.9 高性能 ?5
1.2.10 多線程 ?5
1.2.11 動(dòng)態(tài)性 ?6
1.3 Java applet與Internet ?6
1.4 Java發(fā)展簡(jiǎn)史 ?7
1.5 關(guān)于Java的常見(jiàn)誤解 ?10
第2章 Java程序設(shè)計(jì)環(huán)境 ?12
2.1 安裝Java開(kāi)發(fā)工具包 ?12
2.1.1 下載JDK ?12
2.1.2 設(shè)置JDK ?14
2.1.3 安裝庫(kù)源文件和文檔 ?16
2.2 使用命令行工具 ?16
2.3 使用集成開(kāi)發(fā)環(huán)境 ?20
2.4 JShell ?23
第3章 Java的基本程序設(shè)計(jì)結(jié)構(gòu) ?26
3.1 一個(gè)簡(jiǎn)單的Java應(yīng)用程序 ?26
3.2 注釋 ?29
3.3 數(shù)據(jù)類型 ?29
3.3.1 整型 ?30
3.3.2 浮點(diǎn)類型 ?31
3.3.3 char類型 ?32
3.3.4 Unicode和char類型 ?33
3.3.5 boolean類型 ?34
3.4 變量與常量 ?34
3.4.1 聲明變量 ?34
3.4.2 變量初始化 ?35
3.4.3 常量 ?36
3.4.4 枚舉類型 ?37
3.5 運(yùn)算符 ?37
3.5.1 算術(shù)運(yùn)算符 ?37
3.5.2 數(shù)學(xué)函數(shù)與常量 ?38
3.5.3 數(shù)值類型之間的轉(zhuǎn)換 ?40
3.5.4 強(qiáng)制類型轉(zhuǎn)換 ?41
3.5.5 結(jié)合賦值和運(yùn)算符 ?41
3.5.6 自增與自減運(yùn)算符 ?41
3.5.7 關(guān)系和boolean運(yùn)算符 ?42
3.5.8 位運(yùn)算符 ?43
3.5.9 括號(hào)與運(yùn)算符級(jí)別 ?43
3.6 字符串 ?44
3.6.1 子串 ?45
3.6.2 拼接 ?45
3.6.3 不可變字符串 ?45
3.6.4 檢測(cè)字符串是否相等 ?47
3.6.5 空串與Null串 ?48
3.6.6 碼點(diǎn)與代碼單元 ?48
3.6.7 String API ?49
3.6.8 閱讀聯(lián)機(jī)API文檔 ?51
3.6.9 構(gòu)建字符串 ?54
3.7 輸入與輸出 ?55
3.7.1 讀取輸入 ?55
3.7.2 格式化輸出 ?57
3.7.3 文件輸入與輸出 ?61
3.8 控制流程 ?62
3.8.1 塊作用域 ?63
3.8.2 條件語(yǔ)句 ?63
3.8.3 循環(huán) ?66
3.8.4 確定循環(huán) ?69
3.8.5 多重選擇:switch語(yǔ)句 ?72
3.8.6 中斷控制流程的語(yǔ)句 ?74
3.9 大數(shù) ?76
3.10 數(shù)組 ?79
3.10.1 聲明數(shù)組 ?79
3.10.2 訪問(wèn)數(shù)組元素 ?80
3.10.3 for each循環(huán) ?81
3.10.4 數(shù)組拷貝 ?82
3.10.5 命令行參數(shù) ?82
3.10.6 數(shù)組排序 ?83
3.10.7 多維數(shù)組 ?86
3.10.8 不規(guī)則數(shù)組 ?88
第4章 對(duì)象與類 ?92
4.1 面向?qū)ο蟪绦蛟O(shè)計(jì)概述 ?92
4.1.1 類 ?93
4.1.2 對(duì)象 ?94
4.1.3 識(shí)別類 ?94
4.1.4 類之間的關(guān)系 ?95
4.2 使用預(yù)定義類 ?96
4.2.1 對(duì)象與對(duì)象變量 ?96
4.2.2 Java類庫(kù)中的LocalDate類 ?99
4.2.3 更改器方法與訪問(wèn)器方法 ?100
4.3 用戶自定義類 ?103
4.3.1 Employee類 ?104
4.3.2 多個(gè)源文件的使用 ?106
4.3.3 剖析Employee類 ?107
4.3.4 從構(gòu)造器開(kāi)始 ?107
4.3.5 用var聲明局部變量 ?109
4.3.6 使用null引用 ?109
4.3.7 隱式參數(shù)與顯式參數(shù) ?110
4.3.8 封裝的優(yōu)點(diǎn) ?111
4.3.9 基于類的訪問(wèn)權(quán)限 ?113
4.3.10 私有方法 ?114
4.3.11 f?inal實(shí)例字段 ?114
4.4 靜態(tài)字段與靜態(tài)方法 ?115
4.4.1 靜態(tài)字段 ?115
4.4.2 靜態(tài)常量 ?116
4.4.3 靜態(tài)方法 ?116
4.4.4 工廠方法 ?117
4.4.5 main方法 ?118
4.5 方法參數(shù) ?121
4.6 對(duì)象構(gòu)造 ?126
4.6.1 重載 ?126
4.6.2 默認(rèn)字段初始化 ?127
4.6.3 無(wú)參數(shù)的構(gòu)造器 ?127
4.6.4 顯式字段初始化 ?128
4.6.5 參數(shù)名 ?129
4.6.6 調(diào)用另一個(gè)構(gòu)造器 ?129
4.6.7 初始化塊 ?130
4.6.8 對(duì)象析構(gòu)與f?inalize方法 ?134
4.7 包 ?134
4.7.1 包名 ?134
4.7.2 類的導(dǎo)入 ?135
4.7.3 靜態(tài)導(dǎo)入 ?136
4.7.4 在包中增加類 ?137
4.7.5 包訪問(wèn) ?139
4.7.6 類路徑 ?140
4.7.7 設(shè)置類路徑 ?142
4.8 JAR文件 ?143
4.8.1 創(chuàng)建JAR文件 ?143
4.8.2 清單文件 ?144
4.8.3 可執(zhí)行JAR文件 ?145
4.8.4 多版本JAR文件 ?145
4.8.5 關(guān)于命令行選項(xiàng)的說(shuō)明 ?146
4.9 文檔注釋 ?148
4.9.1 注釋的插入 ?148
4.9.2 類注釋 ?149
4.9.3 方法注釋 ?149
4.9.4 字段注釋 ?150
4.9.5 通用注釋 ?150
4.9.6 包注釋 ?151
4.9.7 注釋抽取 ?151
4.10 類設(shè)計(jì)技巧 ?152
第5章 繼承 ?155
5.1 類、超類和子類 ?155
5.1.1 定義子類 ?155
5.1.2 覆蓋方法 ?157
5.1.3 子類構(gòu)造器 ?158
5.1.4 繼承層次 ?162
5.1.5 多態(tài) ?162
5.1.6 理解方法調(diào)用 ?163
5.1.7 阻止繼承:f?inal類和方法 ?165
5.1.8 強(qiáng)制類型轉(zhuǎn)換 ?166
5.1.9 抽象類 ?168
5.1.10 受保護(hù)訪問(wèn) ?173
5.2 Object:所有類的超類 ?174
5.2.1 Object類型的變量 ?174
5.2.2 equals方法 ?175
5.2.3 相等測(cè)試與繼承 ?176
5.2.4 hashCode方法 ?179
5.2.5 toString方法 ?181
5.3 泛型數(shù)組列表 ?186
5.3.1 聲明數(shù)組列表 ?187
5.3.2 訪問(wèn)數(shù)組列表元素 ?189
5.3.3 類型化與原始數(shù)組列表的
兼容性 ?191
5.4 對(duì)象包裝器與自動(dòng)裝箱 ?192
5.5 參數(shù)數(shù)量可變的方法 ?195
5.6 枚舉類 ?196
5.7 反射 ?198
5.7.1 Class類 ?199
5.7.2 聲明異常入門 ? 201
5.7.3 資源 ?202
5.7.4 利用反射分析類的能力 ?203
5.7.5 使用反射在運(yùn)行時(shí)分析
對(duì)象 ?208
5.7.6 使用反射編寫泛型數(shù)組
代碼 ?213
5.7.7 調(diào)用任意方法和構(gòu)造器 ?216
5.8 繼承的設(shè)計(jì)技巧 ?219
第6章 接口、lambda表達(dá)式與
內(nèi)部類 ?222
6.1 接口 ?222
6.1.1 接口的概念 ?222
6.1.2 接口的屬性 ?228
6.1.3 接口與抽象類 ?229
6.1.4 靜態(tài)和私有方法 ?230
6.1.5 默認(rèn)方法 ?230
6.1.6 解決默認(rèn)方法沖突 ?231
6.1.7 接口與回調(diào) ?233
6.1.8 Comparator接口 ?235
6.1.9 對(duì)象克隆 ?236
6.2 lambda表達(dá)式 ?242
6.2.1 為什么引入lambda表達(dá)式 ?242
6.2.2 lambda表達(dá)式的語(yǔ)法 ?243
6.2.3 函數(shù)式接口 ?245
6.2.4 方法引用 ?247
6.2.5 構(gòu)造器引用 ?250
6.2.6 變量作用域 ?250
6.2.7 處理lambda表達(dá)式 ?252
6.2.8 再談Comparator ?254
6.3 內(nèi)部類 ?255
6.3.1 使用內(nèi)部類訪問(wèn)對(duì)象狀態(tài) ?256
6.3.2 內(nèi)部類的特殊語(yǔ)法規(guī)則 ?259
6.3.3 內(nèi)部類是否有用、必要和
安全 ?260
6.3.4 局部?jī)?nèi)部類 ?262
6.3.5 由外部方法訪問(wèn)變量 ?263
6.3.6 匿名內(nèi)部類 ?264
6.3.7 靜態(tài)內(nèi)部類 ?267
6.4 服務(wù)加載器 ?270
6.5 代理 ?273
6.5.1 何時(shí)使用代理 ?273
6.5.2 創(chuàng)建代理對(duì)象 ?273
6.5.3 代理類的特性 ?277
第7章 異常、斷言和日志 ?279
7.1 處理錯(cuò)誤 ?279
7.1.1 異常分類 ?280
7.1.2 聲明檢查型異常 ?282
7.1.3 如何拋出異常 ?284
7.1.4 創(chuàng)建異常類 ?285
7.2 捕獲異常 ?286
7.2.1 捕獲異常 ?286
7.2.2 捕獲多個(gè)異常 ?288
7.2.3 再次拋出異常與異常鏈 ?289
7.2.4 f?inally子句 ?290
7.2.5 try-with-Resources語(yǔ)句 ?292
7.2.6 分析堆棧軌跡元素 ?294
7.3 使用異常的技巧 ?297
7.4 使用斷言 ?300
7.4.1 斷言的概念 ?300
7.4.2 啟用和禁用斷言 ?301
7.4.3 使用斷言完成參數(shù)檢查 ?302
7.4.4 使用斷言提供假設(shè)文檔 ?303
7.5 日志 ?304
7.5.1 基本日志 ?305
7.5.2 高級(jí)日志 ?305
7.5.3 修改日志管理器配置 ?307
7.5.4 本地化 ?308
7.5.5 處理器 ?309
7.5.6 過(guò)濾器 ?312
7.5.7 格式化器 ?313
7.5.8 日志技巧 ?313
7.6 調(diào)試技巧 ?321
第8章 泛型程序設(shè)計(jì) ?326
8.1 為什么要使用泛型程序設(shè)計(jì) ?326
8.1.1 類型參數(shù)的好處 ?326
8.1.2 誰(shuí)想成為泛型程序員 ?328
8.2 定義簡(jiǎn)單泛型類 ?328
8.3 泛型方法 ?330
8.4 類型變量的限定 ?331
8.5 泛型代碼和虛擬機(jī) ?333
8.5.1 類型擦除 ?333
8.5.2 轉(zhuǎn)換泛型表達(dá)式 ?335
8.5.3 轉(zhuǎn)換泛型方法 ?335
8.5.4 調(diào)用遺留代碼 ?337
8.6 限制與局限性 ?338
8.6.1 不能用基本類型實(shí)例化類型參數(shù) ?338
8.6.2 運(yùn)行時(shí)類型查詢只適用于原始類型 ?338
8.6.3 不能創(chuàng)建參數(shù)化類型的數(shù)組 ?338
8.6.4 Varargs警告 ?339
8.6.5 不能實(shí)例化類型變量 ?340
8.6.6 不能構(gòu)造泛型數(shù)組 ?341
8.6.7 泛型類的靜態(tài)上下文中類型變量無(wú)效 ?342
8.6.8 不能拋出或捕獲泛型類的實(shí)例 ?343
8.6.9 可以取消對(duì)檢查型異常的檢查 ?343
8.6.10 注意擦除后的沖突 ?345
8.7 泛型類型的繼承規(guī)則 ?346
8.8 通配符類型 ?348
8.8.1 通配符概念 ?348
8.8.2 通配符的超類型限定 ?349
8.8.3 無(wú)限定通配符 ?351
8.8.4 通配符捕獲 ?352
8.9 反射和泛型 ?354
8.9.1 泛型Class類 ?354
8.9.2 使用Class<T>參數(shù)進(jìn)行類型匹配 ?355
8.9.3 虛擬機(jī)中的泛型類型信息 ?356
8.9.4 類型字面量 ?359
第9章 集合 ?365
9.1 Java集合框架 ?365
9.1.1 集合接口與實(shí)現(xiàn)分離 ?365
9.1.2 Collection接口 ?368
9.1.3 迭代器 ?368
9.1.4 泛型實(shí)用方法 ?370
9.2 集合框架中的接口 ?373
9.3 具體集合 ?375
9.3.1 鏈表 ?375
9.3.2 數(shù)組列表 ?384
9.3.3 散列集 ?385
9.3.4 樹(shù)集 ?388
9.3.5 隊(duì)列與雙端隊(duì)列 ?391
9.3.6 優(yōu)先隊(duì)列 ?392
9.4 映射 ?394
9.4.1 基本映射操作 ?394
9.4.2 更新映射條目 ?397
9.4.3 映射視圖 ?398
9.4.4 弱散列映射 ?399
9.4.5 鏈接散列集與映射 ?400
9.4.6 枚舉集與映射 ?401
9.4.7 標(biāo)識(shí)散列映射 ?402
9.5 視圖與包裝器 ?403
9.5.1 小集合 ?404
9.5.2 子范圍 ?405
9.5.3 不可修改的視圖 ?405
9.5.4 同步視圖 ?406
9.5.5 檢查型視圖 ?407
9.5.6 關(guān)于可選操作的說(shuō)明 ?407
9.6 算法 ?411
9.6.1 為什么使用泛型算法 ?411
9.6.2 排序與混排 ?412
9.6.3 二分查找 ?414
9.6.4 簡(jiǎn)單算法 ?415
9.6.5 批操作 ?417
9.6.6 集合與數(shù)組的轉(zhuǎn)換 ?418
9.6.7 編寫自己的算法 ?418
9.7 遺留的集合 ?419
9.7.1 Hashtable類 ?419
9.7.2 枚舉 ?419
9.7.3 屬性映射 ?421
9.7.4 棧 ?424
9.7.5 位集 ?424
第10章 圖形用戶界面程序設(shè)計(jì) ?429
10.1 Java用戶界面工具包簡(jiǎn)史 ?429
10.2 顯示窗體 ?430
10.2.1 創(chuàng)建窗體 ?431
10.2.2 窗體屬性 ?433
10.3 在組件中顯示信息 ?435
10.3.1 處理2D圖形 ?439
10.3.2 使用顏色 ?445
10.3.3 使用字體 ?446
10.3.4 顯示圖像 ?452
10.4 事件處理 ?453
10.4.1 基本事件處理概念 ?453
10.4.2 實(shí)例:處理按鈕點(diǎn)擊事件 ?454
10.4.3 簡(jiǎn)潔地指定監(jiān)聽(tīng)器 ?457
10.4.4 適配器類 ?458
10.4.5 動(dòng)作 ?460
10.4.6 鼠標(biāo)事件 ?464
10.4.7 AWT事件繼承層次 ?469
10.5 首選項(xiàng)API ?472
第11章 Swing用戶界面組件 ?478
11.1 Swing和模型–視圖–控制器設(shè)計(jì)模式 ?478
11.2 布局管理概述 ?481
11.2.1 布局管理器 ?482
11.2.2 邊框布局 ?483
11.2.3 網(wǎng)格布局 ?484
11.3 文本輸入 ?485
11.3.1 文本域 ?486
11.3.2 標(biāo)簽和標(biāo)簽組件 ?487
11.3.3 密碼域 ?488
11.3.4 文本區(qū) ?489
11.3.5 滾動(dòng)窗格 ?489
11.4 選擇組件 ?491
11.4.1 復(fù)選框 ?492
11.4.2 單選按鈕 ?494
11.4.3 邊框 ?497
11.4.4 組合框 ?499
11.4.5 滑動(dòng)條 ?502
11.5 菜單 ?507
11.5.1 菜單構(gòu)建 ?507
11.5.2 菜單項(xiàng)中的圖標(biāo) ?509
11.5.3 復(fù)選框和單選按鈕菜單項(xiàng) ?510
11.5.4 彈出菜單 ?511
11.5.5 鍵盤助記符和加速器 ?512
11.5.6 啟用和禁用菜單項(xiàng) ?514
11.5.7 工具條 ?518
11.5.8 工具提示 ?519
11.6 復(fù)雜的布局管理 ?520
11.6.1 網(wǎng)格包布局 ?520
11.6.2 定制布局管理器 ?529
11.7 對(duì)話框 ?532
11.7.1 選項(xiàng)對(duì)話框 ?533
11.7.2 創(chuàng)建對(duì)話框 ?536
11.7.3 數(shù)據(jù)交換 ?540
11.7.4 文件對(duì)話框 ?545
第12章 并發(fā) ?552
12.1 什么是線程 ?552
12.2 線程狀態(tài) ?555
12.2.1 新建線程 ?556
12.2.2 可運(yùn)行線程 ?556
12.2.3 阻塞和等待線程 ?556
12.2.4 終止線程 ?558
12.3 線程屬性 ?558
12.3.1 中斷線程 ?558
12.3.2 守護(hù)線程 ?561
12.3.3 線程名 ?561
12.3.4 未捕獲異常的處理器 ?561
12.3.5 線程優(yōu)先級(jí) ?563
12.4 同步 ?563
12.4.1 競(jìng)態(tài)條件的一個(gè)例子 ?563
12.4.2 競(jìng)態(tài)條件詳解 ?567
12.4.3 鎖對(duì)象 ?568
12.4.4 條件對(duì)象 ?571
12.4.5 synchronized關(guān)鍵字 ?576
12.4.6 同步塊 ?579
12.4.7 監(jiān)視器概念 ?580
12.4.8 volatile字段 ?581
12.4.9 final變量 ?582
12.4.10 原子性 ?582
12.4.11 死鎖 ?584
12.4.12 線程局部變量 ?586
12.4.13 為什么廢棄stop和suspend方法 ?587
12.5 線程安全的集合 ?589
12.5.1 阻塞隊(duì)列 ?589
12.5.2 高效的映射、集和隊(duì)列 ?595
12.5.3 映射條目的原子更新 ?596
12.5.4 對(duì)并發(fā)散列映射的批操作 ?599
12.5.5 并發(fā)集視圖 ?600
12.5.6 寫數(shù)組的拷貝 ?601
12.5.7 并行數(shù)組算法 ?601
12.5.8 較早的線程安全集合 ?602
12.6 任務(wù)和線程池 ?603
12.6.1 Callable與Future ?603
12.6.2 執(zhí)行器 ?605
12.6.3 控制任務(wù)組 ?607
12.6.4 fork-join框架 ?612
12.7 異步計(jì)算 ?615
12.7.1 可完成Future ?615
12.7.2 組合可完成Future ?616
12.7.3 用戶界面回調(diào)中的長(zhǎng)時(shí)間運(yùn)行任務(wù) ?622
12.8 進(jìn)程 ?628
12.8.1 建立一個(gè)進(jìn)程 ?628
12.8.2 運(yùn)行一個(gè)進(jìn)程 ?630
12.8.3 進(jìn)程句柄 ?631
附錄 Java關(guān)鍵字 ?634
你與世界
只差一個(gè)
公眾號(hào)
總結(jié)
以上是生活随笔為你收集整理的新书推荐 | Java核心技术卷Ⅰ:基础知识(原书第11版)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JavaScript中this指向
- 下一篇: Bash字符串处理(与Java对照) -