關(guān)于我們
書單推薦
新書推薦
|
Java核心技術(shù) 卷I 基礎(chǔ)知識 第11版 英文版 上下冊
本書是經(jīng)典的《Java核心技術(shù) 卷I:基礎(chǔ)知識》的新版。這一版對全書進(jìn)行了全面更新,以反映Java SE 9、Java SE 10和Java SE 11的特性。
書中囊括了Java的全部基礎(chǔ)知識,提供了大量完整且具有實(shí)際意義的應(yīng)用示例,詳細(xì)介紹了Java語言基礎(chǔ)、面向?qū)ο缶幊、反射與代理、接口與內(nèi)部類、事件監(jiān)聽器模型、使用Swing UI工具進(jìn)行圖形用戶界面程序設(shè)計(jì)、打包應(yīng)用程序、異常處理、登錄與調(diào)試、泛型編程、集合框架、多線程和并發(fā)等內(nèi)容。
Java領(lǐng)域頗具影響力和價(jià)值的經(jīng)典著作
曾獲Jolt生產(chǎn)效率大獎的Java經(jīng)典圖書新版 全面體現(xiàn)Java SE 9、Java SE 10和Java SE 11的新變化 本書是兩卷本中的第一卷,書中深入介紹了基本的Java和UI編程,包括對象、泛型、集合、Lambda 表達(dá)式、Swing設(shè)計(jì)、并發(fā)和函數(shù)式編程。如果你已經(jīng)是有經(jīng)驗(yàn)的程序員,只是剛學(xué)習(xí)Java SE 9、Java SE 10或Java SE 11,應(yīng)該沒有比本書更適合的資料了,它集中了專家見解、解決方案和代碼。 ● 掌握編寫優(yōu)秀Java代碼的基礎(chǔ)技術(shù)、習(xí)慣用法和*佳實(shí)踐。 ● 充分利用接口、Lambda表達(dá)式和內(nèi)部類的強(qiáng)大力量。 ● 通過高效的異常處理和調(diào)試讓程序更可靠。 ● 通過泛型編程編寫更安全、可復(fù)用性更好的代碼。 ● 使用Java的標(biāo)準(zhǔn)集合類改進(jìn)性能和效率。 ● 使用Swing工具箱構(gòu)建跨平臺圖形界面應(yīng)用。 ● 通過Java改進(jìn)的并發(fā)支持充分發(fā)揮多核處理器的能力。 想深入了解Java SE 9、Java SE 10或Java SE 11的企業(yè)特性、模塊系統(tǒng)、網(wǎng)絡(luò)、安全和高級UI編程,請閱讀《Java核心技術(shù) 卷 II:高級特性(第11 版)》。
凱·S. 霍斯特曼(Cay S. Horstmann) 圣何塞州立大學(xué)計(jì)算機(jī)科學(xué)教授,“Java大師”(Java Champion)。他是多卷本的《Java核心技術(shù)》《寫給大忙人看的Java核心技術(shù)(第2 版)》以及《快學(xué)Scala(第2 版)》的作者。他還編寫了很多針對專業(yè)程序員和計(jì)算機(jī)科學(xué)專業(yè)學(xué)生的其他圖書。
Chapter 1: An Introduction to Java / Java概述 1
1.1 Java as a Programming Platform / Java程序設(shè)計(jì)平臺 1 1.2 The Java“White Paper”Buzzwords / Java“白皮書”中的口號 2 1.2.1 Simple / 簡單 3 1.2.2 Object-Oriented / 面向?qū)ο蟆? 1.2.3 Distributed / 分布式 4 1.2.4 Robust / 健壯 4 1.2.5 Secure / 安全 5 1.2.6 Architecture-Neutral / 體系結(jié)構(gòu)中立 6 1.2.7 Portable / 可移植 6 1.2.8 Interpreted / 解釋型 7 1.2.9 High-Performance / 高性能 7 1.2.10 Multithreaded / 多線程 8 1.2.11 Dynamic / 動態(tài) 8 1.3 Java Applets and the Internet / Java Applet與Internet 9 1.4 A Short History of Java / Java簡史 10 1.5 Common Misconceptions about Java / 對Java的常見誤解 13 Chapter 2: The Java Programming Environment / Java編程環(huán)境 17 2.1 Installing the Java Development Kit / 安裝Java開發(fā)包(JDK) 18 2.1.1 Downloading the JDK / 下載JDK 18 2.1.2 Setting up the JDK / 設(shè)置JDK 20 2.1.3 Installing Source Files and Documentation / 安裝源文件和文檔 22 2.2 Using the Command-Line Tools / 使用命令行工具 23 2.3 Using an Integrated Development Environment / 使用集成開發(fā)環(huán)境 29 2.4 JShell 32 Chapter 3: Fundamental Programming Structures in Java / Java的基本編程結(jié)構(gòu) 37 3.1 A Simple Java Program / 一個簡單的Java程序 38 3.2 Comments / 注釋 41 3.3 Data Types / 數(shù)據(jù)類型 42 3.3.1 Integer Types / 整型 43 3.3.2 Floating-Point Types / 浮點(diǎn)型 44 3.3.3 The char Type / char類型 46 3.3.4 Unicode and the char Type / Unicode與char類型 47 3.3.5 The boolean Type / boolean類型 48 3.4 Variables and Constants / 變量和常量 48 3.4.1 Declaring Variables / 聲明變量 48 3.4.2 Initializing Variables / 初始化變量 50 3.4.3 Constants / 常量 51 3.4.4 Enumerated Types / 枚舉類型 52 3.5 Operators / 運(yùn)算符 52 3.5.1 Arithmetic Operators / 算術(shù)運(yùn)算符 52 3.5.2 Mathematical Functions and Constants / 數(shù)學(xué)函數(shù)和常量 54 3.5.3 Conversions between Numeric Types / 數(shù)值類型之間的轉(zhuǎn)換 56 3.5.4 Casts / 強(qiáng)制類型轉(zhuǎn)換 57 3.5.5 Combining Assignment with Operators / 組合賦值運(yùn)算符 58 3.5.6 Increment and Decrement Operators / 自增與自減運(yùn)算符 58 3.5.7 Relational and boolean Operators / 關(guān)系與boolean運(yùn)算符 59 3.5.8 Bitwise Operators / 位運(yùn)算符 60 3.5.9 Parentheses and Operator Hierarchy / 括號與運(yùn)算符優(yōu)先級 61 3.6 Strings / 字符串 62 3.6.1 Substrings / 子串 62 3.6.2 Concatenation / 拼接 63 3.6.3 Strings Are Immutable / String是不可變的 63 3.6.4 Testing Strings for Equality / 測試字符串是否相等 65 3.6.5 Empty and Null Strings / 空串與null串 66 3.6.6 Code Points and Code Units / 碼位與編碼單元 66 3.6.7 The String API / String API 68 3.6.8 Reading the Online API Documentation / 閱讀在線API文檔 71 3.6.9 Building Strings / 構(gòu)建字符串 74 3.7 Input and Output / 輸入和輸出 75 3.7.1 Reading Input / 讀取輸入 75 3.7.2 Formatting Output / 格式化輸出 78 3.7.3 File Input and Output / 文件輸入和輸出 83 3.8 Control Flow / 控制流 86 3.8.1 Block Scope / 塊作用域 86 3.8.2 Conditional Statements / 條件語句 87 3.8.3 Loops / 循環(huán) 91 3.8.4 Determinate Loops / 確定性循環(huán) 95 3.8.5 Multiple Selections—The switch Statement / 多重選擇:switch語句 99 3.8.6 Statements That Break Control Flow / 用于跳出控制流的語句 102 3.9 Big Numbers / 大數(shù) 105 3.10 Arrays / 數(shù)組 108 3.10.1 Declaring Arrays / 聲明數(shù)組 108 3.10.2 Accessing Array Elements / 訪問數(shù)組元素 109 3.10.3 The “for each” Loop / “for each”循環(huán) 110 3.10.4 Array Copying / 數(shù)組復(fù)制 111 3.10.5 Command-Line Parameters / 命令行參數(shù) 112 3.10.6 Array Sorting / 數(shù)組排序 113 3.10.7 Multidimensional Arrays / 多維數(shù)組 116 3.10.8 Ragged Arrays / 不規(guī)則數(shù)組 120 Chapter 4: Objects and Classes / 對象與類 125 4.1 Introduction to Object-Oriented Programming / 面向?qū)ο缶幊毯喗椤?26 4.1.1 Classes / 類 127 4.1.2 Objects / 對象 128 4.1.3 Identifying Classes / 識別類 129 4.1.4 Relationships between Classes / 類之間的關(guān)系 129 4.2 Using Predefined Classes / 使用預(yù)定義類 131 4.2.1 Objects and Object Variables / 對象與對象變量 132 4.2.2 The LocalDate Class of the Java Library / Java庫中的LocalDate類 135 4.2.3 Mutator and Accessor Methods / 更改器方法與訪問器方法 138 4.3 Defining Your Own Classes / 定義自己的類 141 4.3.1 An Employee Class / Employee類 142 4.3.2 Use of Multiple Source Files / 使用多個源文件 145 4.3.3 Dissecting the Employee Class / 分析Employee類 146 4.3.4 First Steps with Constructors / 從構(gòu)造器開始 146 4.3.5 Declaring Local Variables with var / 使用var聲明局部變量 148 4.3.6 Working with null References / 使用null引用 148 4.3.7 Implicit and Explicit Parameters / 隱式參數(shù)與顯式參數(shù) 150 4.3.8 Benefits of Encapsulation / 封裝的好處 151 4.3.9 Class-Based Access Privileges / 基于類的訪問權(quán)限 154 4.3.10 Private Methods / 私有方法 155 4.3.11 Final Instance Fields / final實(shí)例字段 155 4.4 Static Fields and Methods / 靜態(tài)的字段與方法 156 4.4.1 Static Fields / 靜態(tài)字段 156 4.4.2 Static Constants / 靜態(tài)常量 157 4.4.3 Static Methods / 靜態(tài)方法 158 4.4.4 Factory Methods / 工廠方法 159 4.4.5 The main Method / main方法 160 4.5 Method Parameters / 方法參數(shù) 163 4.6 Object Construction / 對象構(gòu)建 170 4.6.1 Overloading / 重載 170 4.6.2 Default Field Initialization / 默認(rèn)字段初始化 171 4.6.3 The Constructor with No Arguments / 無參構(gòu)造器 172 4.6.4 Explicit Field Initialization / 顯式字段初始化 173 4.6.5 Parameter Names / 參數(shù)名 174 4.6.6 Calling Another Constructor / 調(diào)用另一個構(gòu)造器 175 4.6.7 Initialization Blocks / 初始化塊 175 4.6.8 Object Destruction and the finalize Method / 對象析構(gòu)與finalize方法 180 4.7 Packages / 包 180 4.7.1 Package Names / 包名 181 4.7.2 Class Importation / 導(dǎo)入類 181 4.7.3 Static Imports / 靜態(tài)導(dǎo)入 183 4.7.4 Addition of a Class into a Package / 將類添加到某個包中 184 4.7.5 Package Access / 包訪問權(quán)限 187 4.7.6 The Class Path / 類路徑 189 4.7.7 Setting the Class Path / 設(shè)置類路徑 191 4.8 JAR Files / JAR文件 192 4.8.1 Creating JAR files / 創(chuàng)建JAR文件 192 4.8.2 The Manifest / 清單文件 193 4.8.3 Executable JAR Files / 可執(zhí)行的JAR文件 194 4.8.4 Multi-Release JAR Files / 支持多個Java版本的JAR文件 195 4.8.5 A Note about Command-Line Options / 關(guān)于命令行選項(xiàng)的說明 197 4.9 Documentation Comments / 文檔注釋 198 4.9.1 Comment Insertion / 插入注釋 199 4.9.2 Class Comments / 類注釋 199 4.9.3 Method Comments / 方法注釋 200 4.9.4 Field Comments / 字段注釋 201 4.9.5 General Comments / 通用注釋 201 4.9.6 Package Comments / 包注釋 202 4.9.7 Comment Extraction / 提取注釋 203 4.10 Class Design Hints / 類設(shè)計(jì)建議 204 Chapter 5: Inheritance / 繼承 207 5.1 Classes, Superclasses, and Subclasses / 類、超類與子類 208 5.1.1 Defining Subclasses / 定義子類 208 5.1.2 Overriding Methods / 覆蓋方法 210 5.1.3 Subclass Constructors / 子類構(gòu)造器 211 5.1.4 Inheritance Hierarchies / 繼承層次 216 5.1.5 Polymorphism / 多態(tài) 217 5.1.6 Understanding Method Calls / 理解方法調(diào)用 218 5.1.7 Preventing Inheritance: Final Classes and Methods / 阻止繼承:final修飾的類和方法 221 5.1.8 Casting / 強(qiáng)制類型轉(zhuǎn)換 223 5.1.9 Abstract Classes / 抽象類 225 5.1.10 Protected Access / 受保護(hù)訪問 231 5.2 Object: The Cosmic Superclass / Object:所有類的超類 232 5.2.1 Variables of Type Object / Object類型的變量 232 5.2.2 The equals Method / equals方法 233 5.2.3 Equality Testing and Inheritance / 相等測試與繼承 234 5.2.4 The hashCode Method / hashCode方法 238 5.2.5 The toString Method / toString方法 241 5.3 Generic Array Lists / 泛型數(shù)組列表 248 5.3.1 Declaring Array Lists / 聲明數(shù)組列表 248 5.3.2 Accessing Array List Elements / 訪問數(shù)組列表的元素 251 5.3.3 Compatibility between Typed and Raw Array Lists / 類型化和原始數(shù)組列表的兼容性 255 5.4 Object Wrappers and Autoboxing / 對象包裝器與自動裝箱 256 5.5 Methods with a Variable Number of Parameters / 參數(shù)數(shù)量可變的方法 260 5.6 Enumeration Classes / 枚舉類 261 5.7 Reflection / 反射 264 5.7.1 The Class Class / Class類 264 5.7.2 A Primer on Declaring Exceptions / 初步了解如何聲明異常 267 5.7.3 Resources / 資源 268 5.7.4 Using Reflection to Analyze the Capabilities of Classes / 使用反射分析類的能力 271 5.7.5 Using Reflection to Analyze Objects at Runtime / 使用反射在運(yùn)行時分析對象 277 5.7.6 Using Reflection to Write Generic Array Code / 使用反射編寫泛型數(shù)組代碼 283 5.7.7 Invoking Arbitrary Methods and Constructors / 調(diào)用任意方法和構(gòu)造器 286 5.8 Design Hints for Inheritance / 繼承的設(shè)計(jì)建議 290 Chapter 6: Interfaces, Lambda Expressions, and Inner Classes / 接口、Lambda表達(dá)式和內(nèi)部類 295 6.1 Interfaces / 接口 296 6.1.1 The Interface Concept / 接口的概念 296 6.1.2 Properties of Interfaces / 接口的特性 303 6.1.3 Interfaces and Abstract Classes / 接口與抽象類 305 6.1.4 Static and Private Methods / 靜態(tài)和私有方法 306 6.1.5 Default Methods / 默認(rèn)方法 307 6.1.6 Resolving Default Method Conflicts / 解決默認(rèn)方法的沖突 308 6.1.7 Interfaces and Callbacks / 接口與回調(diào) 310 6.1.8 The Comparator Interface / Comparator接口 313 6.1.9 Object Cloning / 對象克隆 314 6.2 Lambda Expressions / Lambda表達(dá)式 322 6.2.1 Why Lambdas / 為什么引入Lambda表達(dá)式 322 6.2.2 The Syntax of Lambda Expressions / Lambda表達(dá)式的語法 323 6.2.3 Functional Interfaces / 函數(shù)式接口 326 6.2.4 Method References / 方法引用 328 6.2.5 Constructor References / 構(gòu)造器引用 332 6.2.6 Variable Scope / 變量作用域 333 6.2.7 Processing Lambda Expressions / 處理Lambda表達(dá)式 335 6.2.8 More about Comparators / 再談Comparator 339 6.3 Inner Classes / 內(nèi)部類 340 6.3.1 Use of an Inner Class to Access Object State / 使用內(nèi)部類訪問對象狀態(tài) 341 6.3.2 Special Syntax Rules for Inner Classes / 內(nèi)部類的特殊語法規(guī)則 345 6.3.3 Are Inner Classes Useful Actually Necessary Secure / 內(nèi)部類是否有用、必要和安全 346 6.3.4 Local Inner Classes / 局部內(nèi)部類 349 6.3.5 Accessing Variables from Outer Methods / 從外部方法訪問變量 350 6.3.6 Anonymous Inner Classes / 匿名內(nèi)部類 352 6.3.7 Static Inner Classes / 靜態(tài)內(nèi)部類 356 6.4 Service Loaders / 服務(wù)加載器 360 6.5 Proxies / 代理 362 6.5.1 When to Use Proxies / 何時使用代理 363 6.5.2 Creating Proxy Objects / 創(chuàng)建代理對象 363 6.5.3 Properties of Proxy Classes / 代理類的特性 368 Chapter 7: Exceptions, Assertions, and Logging / 異常、斷言與日志 371 7.1 Dealing with Errors / 處理錯誤 372 7.1.1 The Classification of Exceptions / 異常分類 373 7.1.2 Declaring Checked Exceptions / 聲明檢查型異!375 7.1.3 How to Throw an Exception / 如何拋出異常 378 7.1.4 Creating Exception Classes / 創(chuàng)建異常類 380 7.2 Catching Exceptions / 捕獲異!381 7.2.1 Catching an Exception / 捕獲一個異!381 7.2.2 Catching Multiple Exceptions / 捕獲多個異常 383 7.2.3 Rethrowing and Chaining Exceptions / 再次拋出異常與異常鏈 384 7.2.4 The finally Clause / finally子句 386 7.2.5 The try-with-Resources Statement / try-with-resources語句 389 7.2.6 Analyzing Stack Trace Elements / 分析棧軌跡元素 391 7.3 Tips for Using Exceptions / 異常使用技巧 396 7.4 Using Assertions / 使用斷言 399 7.4.1 The Assertion Concept / 斷言的概念 399 7.4.2 Assertion Enabling and Disabling / 啟用和禁用斷言 400 7.4.3 Using Assertions for Parameter Checking / 使用斷言檢查參數(shù) 401 7.4.4 Using Assertions for Documenting Assumptions / 使用斷言保證文檔中假定成立的條件 402 7.5 Logging / 日志 403 7.5.1 Basic Logging / 基本日志 404 7.5.2 Advanced Logging / 高級日志 405 7.5.3 Changing the Log Manager Configuration / 修改日志管理器配置 407 7.5.4 Localization / 本地化 409 7.5.5 Handlers / 處理器 410 7.5.6 Filters / 過濾器 414 7.5.7 Formatters / 格式化器 415 7.5.8 A Logging Recipe / 常見日志操作總結(jié) 415 7.6 Debugging Tips / 調(diào)試技巧 425 Chapter 8: Generic Programming / 泛型編程 431 8.1 Why Generic Programming / 為什么要使用泛型編程 432 8.1.1 The Advantage of Type Parameters / 類型參數(shù)的好處 432 8.1.2 Who Wants to Be a Generic Programmer / 哪些人想成為泛型程序員 433 8.2 Defining a Simple Generic Class / 定義簡單的泛型類 434 8.3 Generic Methods / 泛型方法 437 8.4 Bounds for Type Variables / 類型變量的綁定 438 8.5 Generic Code and the Virtual Machine / 泛型代碼與虛擬機(jī) 441 8.5.1 Type Erasure / 類型擦除 441 8.5.2 Translating Generic Expressions / 翻譯泛型表達(dá)式 442 8.5.3 Translating Generic Methods / 翻譯泛型方法 443 8.5.4 Calling Legacy Code / 調(diào)用遺留代碼 445 8.6 Restrictions and Limitations / 約束與局限性 447 8.6.1 Type Parameters Cannot Be Instantiated with Primitive Types / 類型參數(shù)不能用基本類型來實(shí)例化 447 8.6.2 Runtime Type Inquiry Only Works with Raw Types / 運(yùn)行時類型查詢只適用于原始類型 447 8.6.3 You Cannot Create Arrays of Parameterized Types / 不能創(chuàng)建參數(shù)化類型的數(shù)組 448 8.6.4 Varargs Warnings / 注意變長參數(shù)情況 448 8.6.5 You Cannot Instantiate Type Variables / 不能實(shí)例化類型變量 450 8.6.6 You Cannot Construct a Generic Array / 不能構(gòu)造泛型數(shù)組 451 8.6.7 Type Variables Are Not Valid in Static Contexts of Generic Classes / 類型變量在泛型類的靜態(tài)上下文中無效 452 8.6.8 You Cannot Throw or Catch Instances of a Generic Class / 不能拋出或捕獲泛型類的實(shí)例 453 8.6.9 You Can Defeat Checked Exception Checking / 可以打破“檢查型異常必須檢查”的規(guī)則 454 8.6.10 Beware of Clashes after Erasure / 意類型擦除后的沖突 455 8.7 Inheritance Rules for Generic Types / 泛型類型的繼承規(guī)則 457 8.8 Wildcard Types / 通配符類型 459 8.8.1 The Wildcard Concept / 通配符的概念 459 8.8.2 Supertype Bounds for Wildcards / 通配符的超類型限定 461 8.8.3 Unbounded Wildcards / 無限定通配符 464 8.8.4 Wildcard Capture / 通配符捕獲 465 8.9 Reflection and Generics / 反射與泛型 467 8.9.1 The Generic Class Class / 泛型的Class類 467 8.9.2 Using Class Parameters for Type Matching / 使用Class參數(shù)進(jìn)行類型匹配 469 8.9.3 Generic Type Information in the Virtual Machine / 虛擬機(jī)中的泛型類型信息 469 8.9.4 Type Literals / TypeLiteral 473 Chapter 9: Collections / 集合類 481 9.1 The Java Collections Framework / Java集合類框架 482 9.1.1 Separating Collection Interfaces and Implementation / 將集合類的接口與實(shí)現(xiàn)分離 482 9.1.2 The Collection Interface / Collection接口 485 9.1.3 Iterators / 迭代器 485 9.1.4 Generic Utility Methods / 泛型的實(shí)用方法 489 9.2 Interfaces in the Collections Framework / 集合類框架中的接口 492 9.3 Concrete Collections / 具體的集合類 494 9.3.1 Linked Lists / 鏈表 496 9.3.2 Array Lists / 數(shù)組列表 507 9.3.3 Hash Sets / 散列集 507 9.3.4 Tree Sets / 樹形集 511 9.3.5 Queues and Deques / 隊(duì)列與雙端隊(duì)列 516 9.3.6 Priority Queues / 優(yōu)先級隊(duì)列 518 9.4 Maps / 映射 519 9.4.1 Basic Map Operations / 基本映射操作 519 9.4.2 Updating Map Entries / 更新映射表項(xiàng) 523 9.4.3 Map Views / 映射視圖 525 9.4.4 Weak Hash Maps / 弱散列映射 526 9.4.5 Linked Hash Sets and Maps / LinkedHashSet與LinkedHashMap 527 9.4.6 Enumeration Sets and Maps / EnumSet與EnumMap 529 9.4.7 Identity Hash Maps / IdentityHashMap 530 9.5 Views and Wrappers / 視圖與包裝器 532 9.5.1 Small Collections / 小型集合 532 9.5.2 Subranges / 子范圍 534 9.5.3 Unmodifiable Views / 不可修改視圖 535 9.5.4 Synchronized Views / 同步視圖 536 9.5.5 Checked Views / 檢查用視圖 536 9.5.6 A Note on Optional Operations / 可選操作說明 537 9.6 Algorithms / 算法 541 9.6.1 Why Generic Algorithms / 為什么要使用泛型算法 541 9.6.2 Sorting and Shuffling / 排序與混排 543 9.6.3 Binary Search / 二分查找 546 9.6.4 Simple Algorithms / 簡單算法 547 9.6.5 Bulk Operations / 主要操作 549 9.6.6 Converting between Collections and Arrays / 集合與數(shù)組之間的轉(zhuǎn)換 550 9.6.7 Writing Your Own Algorithms / 編寫自己的算法 551 9.7 Legacy Collections / 遺留的集合類 552 9.7.1 The Hashtable Class / Hashtable類 553 9.7.2 Enumerations / Enumeration 553 9.7.3 Property Maps / 屬性映射 555 9.7.4 Stacks / !558 9.7.5 Bit Sets / 位集 559 Chapter 10: Graphical User Interface Programming / 圖形用戶界面編程 565 10.1 A History of Java User Interface Toolkits / Java用戶界面工具包的歷史 565 10.2 Displaying Frames / 顯示框架 567 10.2.1 Creating a Frame / 創(chuàng)建框架 568 10.2.2 Frame Properties / 框架屬性 570 10.3 Displaying Information in a Component / 在組件中顯示信息 574 10.3.1 Working with 2D Shapes / 處理2D圖形 579 10.3.2 Using Color / 使用顏色 587 10.3.3 Using Fonts / 使用字體 589 10.3.4 Displaying Images / 顯示圖片 597 10.4 Event Handling / 事件處理 598 10.4.1 Basic Event Handling Concepts / 事件處理的基本概念 598 10.4.2 Example: Handling a Button Click / 示例:處理按鈕點(diǎn)擊事件 600 10.4.3 Specifying Listeners Concisely / 設(shè)置監(jiān)聽器的簡潔方法 604 10.4.4 Adapter Classes / 適配器類 605 10.4.5 Actions / 動作 608 10.4.6 Mouse Events / 鼠標(biāo)事件 614 10.4.7 The AWT Event Hierarchy / AWT事件層次 620 10.5 The Preferences API / Preferences API 624 Chapter 11: User Interface Components with Swing / Swing用戶界面組件 631 11.1 Swing and the Model-View-Controller Design Pattern / Swing與模型-視圖-控制器設(shè)計(jì)模式 632 11.2 Introduction to Layout Management / 布局管理簡介 636 11.2.1 Layout Managers / 布局管理器 637 11.2.2 Border Layout / 邊框布局 639 11.2.3 Grid Layout / 網(wǎng)格布局 642 11.3 Text Input / 文本輸入 643 11.3.1 Text Fields / 文本框 643 11.3.2 Labels and Labeling Components / 標(biāo)簽與標(biāo)簽組件 645 11.3.3 Password Fields / 密碼框 647 11.3.4 Text Areas / 文本區(qū)域 647 11.3.5 Scroll Panes / 滾動窗格 648 11.4 Choice Components / 選擇組件 651 11.4.1 Checkboxes / 復(fù)選框 651 11.4.2 Radio Buttons /單選按鈕 654 11.4.3 Borders / 邊框 658 11.4.4 Combo Boxes / 組合框 661 11.4.5 Sliders / 滑動條 665 11.5 Menus / 菜單 671 11.5.1 Menu Building / 菜單構(gòu)建 672 11.5.2 Icons in Menu Items / 菜單項(xiàng)中的圖標(biāo) 675 11.5.3 Checkbox and Radio Button Menu Items / 復(fù)選框和單選按鈕菜單項(xiàng) 676 11.5.4 Pop-Up Menus / 彈出菜單 677 11.5.5 Keyboard Mnemonics and Accelerators / 鍵盤助記符與快捷鍵 679 11.5.6 Enabling and Disabling Menu Items / 啟用和禁用菜單項(xiàng) 682 11.5.7 Toolbars / 工具欄 687 11.5.8 Tooltips / 工具提示 689 11.6 Sophisticated Layout Management / 復(fù)雜的布局管理 690 11.6.1 The Grid Bag Layout / 網(wǎng)格袋布局 691 11.6.2 Custom Layout Managers / 定制布局管理器 702 11.7 Dialog Boxes / 對話框 706 11.7.1 Option Dialogs / 選項(xiàng)對話框 707 11.7.2 Creating Dialogs / 創(chuàng)建對話框 712 11.7.3 Data Exchange / 數(shù)據(jù)交換 716 11.7.4 File Dialogs / 文件對話框 723 Chapter 12: Concurrency / 并發(fā) 733 12.1 What Are Threads / 什么是線程 734 12.2 Thread States / 線程狀態(tài) 739 12.2.1 New Threads / 新創(chuàng)建線程 740 12.2.2 Runnable Threads / 可運(yùn)行線程 740 12.2.3 Blocked and Waiting Threads / 被阻塞線程與等待線程 741 12.2.4 Terminated Threads / 被終止的線程 742 12.3 Thread Properties / 線程屬性 743 12.3.1 Interrupting Threads / 中斷線程 743 12.3.2 Daemon Threads / 守護(hù)線程 746 12.3.3 Thread Names / 線程名 747 12.3.4 Handlers for Uncaught Exceptions / 未捕獲異常的處理器 747 12.3.5 Thread Priorities / 線程優(yōu)先級 749 12.4 Synchronization / 同步 750 12.4.1 An Example of a Race Condition / 競爭條件的一個案例 750 12.4.2 The Race Condition Explained / 競爭條件詳解 752 12.4.3 Lock Objects / 鎖對象 755 12.4.4 Condition Objects / 條件對象 758 12.4.5 The synchronized Keyword / synchronized關(guān)鍵字 764 12.4.6 Synchronized Blocks / 同步塊 768 12.4.7 The Monitor Concept / 監(jiān)視器概念 770 12.4.8 Volatile Fields / volatile字段 771 12.4.9 Final Variables / final變量 772 12.4.10 Atomics / 原子 773 12.4.11 Deadlocks / 死鎖 775 12.4.12 Thread-Local Variables / 線程局部變量 778 12.4.13 Why the stop and suspend Methods Are Deprecated / 為什么棄用stop和suspend方法 779 12.5 Thread-Safe Collections / 線程安全的集合 781 12.5.1 Blocking Queues / 阻塞隊(duì)列 781 12.5.2 Efficient Maps, Sets, and Queues / 高效的映射、集和隊(duì)列 789 12.5.3 Atomic Update of Map Entries / 映射表項(xiàng)的原子更新 790 12.5.4 Bulk Operations on Concurrent Hash Maps / 并發(fā)散列映射上的主要操作 794 12.5.5 Concurrent Set Views / 并發(fā)的集視圖 796 12.5.6 Copy on Write Arrays / 寫時復(fù)制的數(shù)組 797 12.5.7 Parallel Array Algorithms / 并行數(shù)組算法 797 12.5.8 Older Thread-Safe Collections / 較早的線程安全的集合 799 12.6 Tasks and Thread Pools / 任務(wù)和線程池 800 12.6.1 Callables and Futures / Callable與Future 800 12.6.2 Executors / 執(zhí)行器 802 12.6.3 Controlling Groups of Tasks / 控制任務(wù)組 806 12.6.4 The Fork-Join Framework / Fork-Join框架 811 12.7 Asynchronous Computations / 異步計(jì)算 814 12.7.1 Completable Futures / CompletableFuture 815 12.7.2 Composing Completable Futures / 組合CompletableFuture 817 12.7.3 Long-Running Tasks in User Interface Callbacks / 用戶界面回調(diào)中的長期運(yùn)行任務(wù) 823 12.8 Processes / 進(jìn)程 831 12.8.1 Building a Process / 構(gòu)建進(jìn)程 832 12.8.2 Running a Process / 運(yùn)行進(jìn)程 834 12.8.3 Process Handles / 進(jìn)程handle 835 Appendix / 附錄 839
你還可能感興趣
我要評論
|