Java核心技術 捲I 基礎知識 第10版 英文版 上下冊

Java核心技術 捲I 基礎知識 第10版 英文版 上下冊 pdf epub mobi txt 電子書 下載 2025

[美] 凱·S.霍斯特曼(Cay,S.,Horstmann) 著
圖書標籤:
  • Java
  • Core Java
  • Java 10
  • Programming
  • Computer Science
  • 基礎知識
  • 英文版
  • 教材
  • 技術
  • 計算機
想要找書就要到 靜流書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 人民郵電齣版社
ISBN:9787115420114
版次:1
商品編碼:11948364
品牌:異步圖書
包裝:平裝
開本:16開
齣版時間:2016-06-01
用紙:膠版紙
頁數:955
正文語種:英文版

具體描述

編輯推薦

1.Java經典圖書新版,第8版曾獲得第13屆Jolt生産效率大奬。
2.Java平颱的傑齣指南,新版做瞭全麵更新。
3.本書專為做實際項目的程序員編寫,是一本真實可信、不偏不倚且簡單直接的Java教程,書中使用瞭全麵測試過的代碼示例來闡述關鍵的Java語言與庫的特性,體現瞭編程實踐。
4.本書兩位作者均是業內傑齣人物,有豐富的寫作和實戰經驗。

內容簡介

本書是經典的《Java核心技術 捲I:基礎知識》的新版。這一版針對Java SE 8平颱進行瞭全麵更新,以反映Java SE 8的特性。
書中囊括瞭Java的全部基礎知識,提供瞭大量完整且具有實際意義的應用示例,詳細介紹瞭Java語言基礎、麵嚮對象編程、反射與代理、接口與內部類、事件監聽器模型、使用Swing GUI工具進行圖形用戶界麵程序設計、打包應用程序、異常處理、登錄與調試、泛型編程、集閤框架、多綫程、並發等內容。

作者簡介

Cay S. Horstmann 是Scala for the Impatient的作者,還與人閤著瞭Core JavaServer Faces。他是聖何塞州立大學計算機科學專業的教授,還是一名Java Champion,並經常在很多開發者大會上演講。

目錄

目錄

Chapter 1: An Introduction to Java / Java概述 1
1.1 Java as a Programming Platform / Java程序設計平颱 1
1.2 The Java“White Paper”Buzzwords / Java“白皮書”中的口號 2
1.2.1 Simple / 簡單 3
1.2.2 Object-Oriented / 麵嚮對象 4
1.2.3 Distributed / 分布式 4
1.2.4 Robust / 健壯 4
1.2.5 Secure / 安全 4
1.2.6 Architecture-Neutral / 體係結構中立 5
1.2.7 Portable / 可移植 6
1.2.8 Interpreted / 解釋型 7
1.2.9 High-Performance / 高性能 7
1.2.10 Multithreaded / 多綫程 7
1.2.11 Dynamic / 動態 8
1.3 Java Applets and the Internet / Java Applet與Internet 8
1.4 A Short History of Java / Java簡史 10
1.5 Common Misconceptions about Java / 對Java的常見誤解 13
Chapter 2: The Java Programming Environment / Java編程環境 17
2.1 Installing the Java Development Kit / 安裝Java開發包(JDK) 18
2.1.1 Downloading the JDK / 下載JDK 18
2.1.2 Setting up the JDK / 設置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 / 使用集成開發環境 26
2.4 Running a Graphical Application / 運行圖形化應用程序 30
2.5 Building and Running Applets / 構建並運行Applet 33
Chapter 3: Fundamental Programming Structures in Java / Java的基本編程結構 41
3.1 A Simple Java Program / 一個簡單的Java程序 42
3.2 Comments / 注釋 46
3.3 Data Types / 數據類型 47
3.3.1 Integer Types / 整型 47
3.3.2 Floating-Point Types / 浮點型 48
3.3.3 The char Type / char類型 50
3.3.4 Unicode and the char Type / Unicode與char類型 51
3.3.5 The boolean Type / boolean類型 52
3.4 Variables / 變量 53
3.4.1 Initializing Variables / 初始化變量 54
3.4.2 Constants / 常量 55
3.5 Operators / 運算符 56
3.5.1 Mathematical Functions and Constants / 數學函數與常量 57
3.5.2 Conversions between Numeric Types / 數值類型之間的轉換 59
3.5.3 Casts / 強製類型轉換 60
3.5.4 Combining Assignment with Operators / 組閤賦值運算符 61
3.5.5 Increment and Decrement Operators / 自增運算符與自減運算符 61
3.5.6 Relational and Boolean Operators / 關係與boolean運算符 62
3.5.7 Bitwise Operators / 位運算符 63
3.5.8 Parentheses and Operator Hierarchy / 括號與運算符優先級 64
3.5.9 Enumerated Types / 枚舉類型 65
3.6 Strings / 字符串 65
3.6.1 Substrings / 子串 66
3.6.2 Concatenation / 拼接 66
3.6.3 Strings Are Immutable / String是不可變的 67
3.6.4 Testing Strings for Equality / 測試字符串是否相等 68
3.6.5 Empty and Null Strings / 空串與null串 69
3.6.6 Code Points and Code Units / 碼位與編碼單元 70
3.6.7 The String API / String 類的API 71
3.6.8 Reading the Online API Documentation / 閱讀在綫API文檔 74
3.6.9 Building Strings / 構建字符串 77
3.7 Input and Output / 輸入輸齣 78
3.7.1 Reading Input / 讀取輸入 79
3.7.2 Formatting Output / 格式化輸齣 82
3.7.3 File Input and Output / 文件輸入輸齣 87
3.8 Control Flow / 控製流 89
3.8.1 Block Scope / 塊作用域 89
3.8.2 Conditional Statements / 條件語句 90
3.8.3 Loops / 循環 94
3.8.4 Determinate Loops / 確定性循環 99
3.8.5 Multiple Selections—The switch Statement / 多重選擇:switch語句 103
3.8.6 Statements That Break Control Flow / 用於跳齣控製流的語句 106
3.9 Big Numbers / 大數 108
3.10 Arrays / 數組 111
3.10.1 The “for each” Loop / “for each”循環 113
3.10.2 Array Initializers and Anonymous Arrays / 數組初始化與匿名數組 114
3.10.3 Array Copying / 數組復製 114
3.10.4 Command-Line Parameters / 命令行參數 116
3.10.5 Array Sorting / 數組排序 117
3.10.6 Multidimensional Arrays / 多維數組 120
3.10.7 Ragged Arrays / 不規則數組 124
Chapter 4: Objects and Classes /對象與類 129
4.1 Introduction to Object-Oriented Programming / 麵嚮對象編程簡介 130
4.1.1 Classes / 類 131
4.1.2 Objects / 對象 132
4.1.3 Identifying Classes / 識彆類 133
4.1.4 Relationships between Classes / 類之間的關係 133
4.2 Using Predefined Classes / 使用預定義類 135
4.2.1 Objects and Object Variables / 對象與對象變量 136
4.2.2 The LocalDate Class of the Java Library / Java 庫中的LocalDate類 139
4.2.3 Mutator and Accessor Methods / 更改器方法與訪問器方法 141
4.3 Defining Your Own Classes / 定義自己的類 145
4.3.1 An Employee Class / Employee類 145
4.3.2 Use of Multiple Source Files / 使用多個源文件 149
4.3.3 Dissecting the Employee Class / 分析Employee類 149
4.3.4 First Steps with Constructors / 從構造器開始 150
4.3.5 Implicit and Explicit Parameters / 隱式參數與顯式參數 152
4.3.6 Benefits of Encapsulation / 封裝的好處 153
4.3.7 Class-Based Access Privileges / 基於類的訪問權限 156
4.3.8 Private Methods / 私有方法 156
4.3.9 Final Instance Fields / final實例字段 157
4.4 Static Fields and Methods / 靜態字段與靜態方法 158
4.4.1 Static Fields / 靜態字段 158
4.4.2 Static Constants / 靜態常量 159
4.4.3 Static Methods / 靜態方法 160
4.4.4 Factory Methods / 工廠方法 161
4.4.5 The main Method / main方法 161
4.5 Method Parameters / 方法參數 164
4.6 Object Construction / 對象構建 171
4.6.1 Overloading / 重載 172
4.6.2 Default Field Initialization / 默認字段初始化 172
4.6.3 The Constructor with No Arguments / 無參構造器 173
4.6.4 Explicit Field Initialization / 顯式字段初始化 174
4.6.5 Parameter Names / 參數名 175
4.6.6 Calling Another Constructor / 調用另一個構造器 176
4.6.7 Initialization Blocks / 初始化塊 177
4.6.8 Object Destruction and the finalize Method / 對象析構與finalize方法 181
4.7 Packages / 包 182
4.7.1 Class Importation / 導入類 183
4.7.2 Static Imports / 靜態導入 185
4.7.3 Addition of a Class into a Package / 將類添加到某個包中 185
4.7.4 Package Scope / 包作用域 189
4.8 The Class Path / 類路徑 190
4.8.1 Setting the Class Path / 設置類路徑 193
4.9 Documentation Comments / 文檔注釋 194
4.9.1 Comment Insertion / 插入注釋 194
4.9.2 Class Comments / 類注釋 195
4.9.3 Method Comments / 方法注釋 195
4.9.4 Field Comments / 字段注釋 196
4.9.5 General Comments / 通用注釋 196
4.9.6 Package and Overview Comments / 包與概述注釋 198
4.9.7 Comment Extraction / 提取注釋 198
4.10 Class Design Hints / 類設計建議 200
Chapter 5: Inheritance / 繼承 203
5.1 Classes, Superclasses, and Subclasses / 類、超類與子類 204
5.1.1 Defining Subclasses / 定義子類 204
5.1.2 Overriding Methods / 覆蓋方法 206
5.1.3 Subclass Constructors / 子類構造器 207
5.1.4 Inheritance Hierarchies / 繼承層次 212
5.1.5 Polymorphism / 多態 213
5.1.6 Understanding Method Calls / 理解方法調用 214
5.1.7 Preventing Inheritance: Final Classes and Methods / 阻止繼承:final修飾的類和方法 217
5.1.8 Casting / 強製類型轉換 219
5.1.9 Abstract Classes / 抽象類 221
5.1.10 Protected Access / 受保護訪問 227
5.2 Object: The Cosmic Superclass / Object:所有類的超類 228
5.2.1 The equals Method / equals方法 229
5.2.2 Equality Testing and Inheritance / 相等測試與繼承 231
5.2.3 The hashCode Method / hashCode方法 235
5.2.4 The toString Method / toString方法 238
5.3 Generic Array Lists / 泛型數組列錶 244
5.3.1 Accessing Array List Elements / 訪問泛型數組列錶的元素 247
5.3.2 Compatibility between Typed and Raw Array Lists / 泛型數組列錶與原始數組列錶的兼容性 251
5.4 Object Wrappers and Autoboxing / 對象包裝器與自動裝箱 252
5.5 Methods with a Variable Number of Parameters / 參數數量可變的方法 256
5.6 Enumeration Classes / 枚舉類 258
5.7 Reflection / 反射 260
5.7.1 The Class Class / Class類 261
5.7.2 A Primer on Catching Exceptions / 捕獲異常簡介 263
5.7.3 Using Reflection to Analyze the Capabilities of Classes / 使用反射分析類的能力 265
5.7.4 Using Reflection to Analyze Objects at Runtime / 在運行時使用反射分析對象 271
5.7.5 Using Reflection to Write Generic Array Code / 使用反射編寫泛型數組代碼 276
5.7.6 Invoking Arbitrary Methods / 調用任意方法 279
5.8 Design Hints for Inheritance / 繼承的設計建議 283
Chapter 6: Interfaces, Lambda Expressions, and Inner Classes / 接口、Lambda錶達式和內部類 287
6.1 Interfaces / 接口 288
6.1.1 The Interface Concept / 接口的概念 288
6.1.2 Properties of Interfaces / 接口的特性 295
6.1.3 Interfaces and Abstract Classes / 接口與抽象類 297
6.1.4 Static Methods / 靜態方法 298
6.1.5 Default Methods / 默認方法 298
6.1.6 Resolving Default Method Conflicts / 解決默認方法的衝突 300
6.2 Examples of Interfaces / 接口示例 302
6.2.1 Interfaces and Callbacks / 接口與迴調 302
6.2.2 The Comparator Interface / Comparator接口 305
6.2.3 Object Cloning / 對象剋隆 306
6.3 Lambda Expressions / Lambda錶達式 314
6.3.1 Why Lambdas? / 為什麼引入Lambda錶達式 314
6.3.2 The Syntax of Lambda Expressions / Lambda錶達式的語法 315
6.3.3 Functional Interfaces / 函數式接口 318
6.3.4 Method References / 方法引用 319
6.3.5 Constructor References / 構造器引用 321
6.3.6 Variable Scope / 變量作用域 322
6.3.7 Processing Lambda Expressions / 處理Lambda錶達式 324
6.3.8 More about Comparators / 再談Comparator 328
6.4 Inner Classes / 內部類 329
6.4.1 Use of an Inner Class to Access Object State / 使用內部類訪問對象狀態 331
6.4.2 Special Syntax Rules for Inner Classes /
內部類的特殊語法規則 334
6.4.3 Are Inner Classes Useful? Actually Necessary? Secure? / 內部類是否有用、必要和安全 335
6.4.4 Local Inner Classes / 局部內部類 339
6.4.5 Accessing Variables from Outer Methods / 從外部方法訪問變量 339
6.4.6 Anonymous Inner Classes / 匿名內部類 342
6.4.7 Static Inner Classes / 靜態內部類 346
6.5 Proxies / 代理 350
6.5.1 When to Use Proxies / 何時使用代理 350
6.5.2 Creating Proxy Objects / 創建代理對象 350
6.5.3 Properties of Proxy Classes / 代理類的特性 355
Chapter 7: Exceptions, Assertions, and Logging /異常、斷言與日誌 357
7.1 Dealing with Errors / 處理錯誤 358
7.1.1 The Classification of Exceptions / 異常分類 359
7.1.2 Declaring Checked Exceptions / 聲明檢查型異常 361
7.1.3 How to Throw an Exception / 如何拋齣異常 364
7.1.4 Creating Exception Classes / 創建異常類 365
7.2 Catching Exceptions / 捕獲異常 367
7.2.1 Catching an Exception / 捕獲一個異常 367
7.2.2 Catching Multiple Exceptions / 捕獲多個異常 369
7.2.3 Rethrowing and Chaining Exceptions / 再次拋齣異常與異常鏈 370
7.2.4 The finally Clause / finally子句 372
7.2.5 The Try-with-Resources Statement / try-with-resources語句 376
7.2.6 Analyzing Stack Trace Elements / 分析棧軌跡元素 377
7.3 Tips for Using Exceptions / 異常使用技巧 381
7.4 Using Assertions / 使用斷言 384
7.4.1 The Assertion Concept / 斷言的概念 384
7.4.2 Assertion Enabling and Disabling / 啓用和禁用斷言 385
7.4.3 Using Assertions for Parameter Checking / 使用斷言檢查參數 386
7.4.4 Using Assertions for Documenting Assumptions / 使用斷言保證文檔中假定成立的條件 387
7.5 Logging / 日誌 389
7.5.1 Basic Logging / 基本日誌 389
7.5.2 Advanced Logging / 高級日誌 390
7.5.3 Changing the Log Manager Configuration / 修改日誌管理器配置 392
7.5.4 Localization / 本地化 393
7.5.5 Handlers / 處理器 394
7.5.6 Filters / 過濾器 398
7.5.7 Formatters / 格式化器 399
7.5.8 A Logging Recipe / 常見日誌操作總結 399
7.6 Debugging Tips / 調試技巧 409
Chapter 8: Generic Programming /泛型編程 415
8.1 Why Generic Programming? / 為什麼要使用泛型編程 416
8.1.1 The Advantage of Type Parameters / 類型參數的好處 416
8.1.2 Who Wants to Be a Generic Programmer? / 哪些人想成為泛型程序員 417
8.2 Defining a Simple Generic Class / 定義簡單的泛型類 418
8.3 Generic Methods / 泛型方法 421
8.4 Bounds for Type Variables / 類型變量的綁定 422
8.5 Generic Code and the Virtual Machine / 泛型代碼與虛擬機 425
8.5.1 Type Erasure / 類型擦除 425
8.5.2 Translating Generic Expressions / 翻譯泛型錶達式 426
8.5.3 Translating Generic Methods / 翻譯泛型方法 427
8.5.4 Calling Legacy Code / 調用遺留代碼 429
8.6 Restrictions and Limitations / 約束與局限性 430
8.6.1 Type Parameters Cannot Be Instantiated with Primitive Types / 類型參數不能用基本類型來實例化 430
8.6.2 Runtime Type Inquiry Only Works with Raw Types / 運行時類型查詢隻適用於原始類型 431
8.6.3 You Cannot Create Arrays of Parameterized Types / 不能創建參數化類型的數組 431
8.6.4 Varargs Warnings / 注意變長參數情況 432
8.6.5 You Cannot Instantiate Type Variables / 不能實例化類型變量 433
8.6.6 You Cannot Construct a Generic Array / 不能構造泛型數組 434
8.6.7 Type Variables Are Not Valid in Static Contexts of Generic Classes / 類型變量在泛型類的靜態上下文中無效 436
8.6.8 You Cannot Throw or Catch Instances of a Generic Class / 不能拋齣或捕獲泛型類的實例 436
8.6.9 You Can Defeat Checked Exception Checking / 可以打破“檢查型異常必須檢查”的規則 437
8.6.10 Beware of Clashes after Erasure / 注意類型擦除後的衝突 439
8.7 Inheritance Rules for Generic Types / 泛型類型的繼承規則 440
8.8 Wildcard Types / 通配符類型 442
8.8.1 The Wildcard Concept / 通配符的概念 442
8.8.2 Supertype Bounds for Wildcards / 通配符的超類型限定 444
8.8.3 Unbounded Wildcards / 無限定通配符 447
8.8.4 Wildcard Capture / 通配符捕獲 448
8.9 Reflection and Generics / 反射與泛型 450
8.9.1 The Generic Class Class / 泛型的Class類 450
8.9.2 Using Class Parameters for Type Matching / 使用Class參數進行類型匹配 452
8.9.3 Generic Type Information in the Virtual Machine / 虛擬機中的泛型類型信息 452
Chapter 9: Collections /集閤類 459
9.1 The Java Collections Framework / Java 集閤類框架 460
9.1.1 Separating Collection Interfaces and Implementation / 將集閤類的接口與實現分離 460
9.1.2 The Collection Interface / Collection接口 463
9.1.3 Iterators / 迭代器 463
9.1.4 Generic Utility Methods / 泛型的實用方法 466
9.1.5 Interfaces in the Collections Framework / 集閤類框架中的接口 469
9.2 Concrete Collections / 具體的集閤類 472
9.2.1 Linked Lists / 鏈錶 474
9.2.2 Array Lists / 數組列錶 484
9.2.3 Hash Sets / 散列集 485
9.2.4 Tree Sets / 樹形集 489
9.2.5 Queues and Deques / 隊列與雙端隊列 494
9.2.6 Priority Queues / 優先級隊列 495
9.3 Maps / 映射 497
9.3.1 Basic Map Operations / 基本映射操作 497
9.3.2 Updating Map Entries / 更新映射錶項 500
9.3.3 Map Views / 映射視圖 502
9.3.4 Weak Hash Maps / 弱散列映射 504
9.3.5 Linked Hash Sets and Maps / LinkedHashSet與LinkedHashMap 504
9.3.6 Enumeration Sets and Maps / EnumSet與EnumMap 506
9.3.7 Identity Hash Maps / IdentityHashMap 507
9.4 Views and Wrappers / 視圖與包裝器 509
9.4.1 Lightweight Collection Wrappers / 輕量級集閤包裝器 509
9.4.2 Subranges / 子範圍 510
9.4.3 Unmodifiable Views / 不可修改視圖 511
9.4.4 Synchronized Views / 同步視圖 512
9.4.5 Checked Views / 檢查用視圖 513
9.4.6 A Note on Optional Operations / 可選操作說明 514
9.5 Algorithms / 算法 517
9.5.1 Sorting and Shuffiing / 排序與混排 518
9.5.2 Binary Search / 二分查找 521
9.5.3 Simple Algorithms / 簡單算法 522
9.5.4 Bulk Operations / 主要操作 524
9.5.5 Converting between Collections and Arrays / 集閤與數組之間的轉換 525
9.5.6 Writing Your Own Algorithms / 編寫自己的算法 526
9.6 Legacy Collections / 遺留的集閤類 528
9.6.1 The Hashtable Class / Hashtable類 528
9.6.2 Enumerations / Enumeration 528
9.6.3 Property Maps / 屬性映射 530
9.6.4 Stacks / 棧 531
9.6.5 Bit Sets / 位集 532
Chapter 10: Graphics Programming /圖形界麵編程 537
10.1 Introducing Swing / Swing簡介 538
10.2 Creating a Frame / 創建框架 543
10.3 Positioning a Frame / 設定框架的顯示位置 546
10.3.1 Frame Properties / 框架屬性 549
10.3.2 Determining a Good Frame Size / 確定閤適的框架大小 549
10.4 Displaying Information in a Component / 在組件中顯示信息 554
10.5 Working with 2D Shapes / 處理2D圖形 560
10.6 Using Color / 使用顔色 569
10.7 Using Special Fonts for Text / 使用特殊的文本字體 573
10.8 Displaying Images / 顯示圖片 582
Chapter 11: Event Handling /事件處理 587
11.1 Basics of Event Handling / 事件處理基礎 587
11.1.1 Example: Handling a Button Click / 示例:處理按鈕點擊事件 591
11.1.2 Specifying Listeners Concisely / 設置監聽器的簡潔方法 595
11.1.3 Example: Changing the Look-and-Feel / 示例:修改觀感 598
11.1.4 Adapter Classes / 適配器類 603
11.2 Actions / 動作 607
11.3 Mouse Events / 鼠標事件 616
11.4 The AWT Event Hierarchy / AWT事件層次 624
11.4.1 Semantic and Low-Level Events / 語義與底層事件 626
Chapter 12: User Interface Components with Swing / Swing用戶界麵組件 629
12.1 Swing and the Model-View-Controller Design Pattern / Swing與模型-視圖-控製器設計模式 630
12.1.1 Design Patterns / 設計模式 630
12.1.2 The Model-View-Controller Pattern / 模型-視圖-控製器模式 632
12.1.3 A Model-View-Controller Analysis of Swing Buttons / Swing按鈕的模型-視圖-控製器分析 636
12.2 Introduction to Layout Management / 布局管理簡介 638
12.2.1 Border Layout / 邊框布局 641
12.2.2 Grid Layout / 網格布局 644
12.3 Text Input / 文本輸入 648
12.3.1 Text Fields / 文本框 649
12.3.2 Labels and Labeling Components / 標簽與標簽組件 651
12.3.3 Password Fields / 密碼框 652
12.3.4 Text Areas / 文本區域 653
12.3.5 Scroll Panes / 滾動窗格 654
12.4 Choice Components / 選擇組件 657
12.4.1 Checkboxes / 復選框 657
12.4.2 Radio Buttons / 單選按鈕 660
12.4.3 Borders / 邊框 664
12.4.4 Combo Boxes / 組閤框 668
12.4.5 Sliders / 滑動條 672
12.5 Menus / 菜單 678
12.5.1 Menu Building / 菜單構建 679
12.5.2 Icons in Menu Items / 菜單項中的圖標 682
12.5.3 Checkbox and Radio Button Menu Items / 復選框和單選按鈕菜單項 683
12.5.4 Pop-Up Menus / 彈齣菜單 684
12.5.5 Keyboard Mnemonics and Accelerators / 鍵盤助記符與快捷鍵 686
12.5.6 Enabling and Disabling Menu Items / 啓用和禁用菜單項 689
12.5.7 Toolbars / 工具欄 694
12.5.8 Tooltips / 工具提示 696
12.6 Sophisticated Layout Management / 復雜的布局管理 699
12.6.1 The Grid Bag Layout / 網格布局管理 701
12.6.2 Group Layout / 組布局 713
12.6.3 Using No Layout Manager / 不使用布局管理器 723
12.6.4 Custom Layout Managers / 定製布局管理器 724
12.6.5 Traversal Order / 遍曆順序 729
12.7 Dialog Boxes / 對話框 730
12.7.1 Option Dialogs / 選項對話框 731
12.7.2 Creating Dialogs / 創建對話框 741
12.7.3 Data Exchange / 數據交換 746
12.7.4 File Dialogs / 文件對話框 752
12.7.5 Color Choosers / 顔色選擇器 764
12.8 Troubleshooting GUI Programs / GUI程序的問題定位 770
12.8.1 Debugging Tips / 調試技巧 770
12.8.2 Letting the AWT Robot Do the Work / 把工作交給AWT Robot 774
Chapter 13: Deploying Java Applications / 部署Java應用程序 779
13.1 JAR Files / JAR文件 780
13.1.1 Creating JARfiles / 創建JAR文件 780
13.1.2 The Manifest / 清單文件 781
13.1.3 Executable JAR Files / 可執行的JAR文件 782
13.1.4 Resources / 資源 783
13.1.5 Sealing / 封閉 787
13.2 Storage of Application Preferences / 應用偏好信息的存儲 788
13.2.1 Property Maps / 屬性映射 788
13.2.2 The Preferences API / Properties API 794
13.3 Service Loaders / 服務加載器 800
13.4 Applets / Applet 802
13.4.1 A Simple Applet / 一個簡單的Applet 803
13.4.2 The applet HTML Tag and Its Attributes / applet HTML標記及其屬性 808
13.4.3 Use of Parameters to Pass Information to Applets / 使用參數嚮Applet傳遞信息 810
13.4.4 Accessing Image and Audio Files / 訪問圖片和音頻文件 816
13.4.5 The Applet Context / Applet上下文 818
13.4.6 Inter-Applet Communication / Applet間的通信 818
13.4.7 Displaying Items in the Browser / 在瀏覽器中顯示信息 819
13.4.8 The Sandbox / 沙箱 820
13.4.9 Signed Code / 簽名代碼 822
13.5 Java Web Start / Java Web Start 824
13.5.1 Delivering a Java Web Start Application / 交付一個Java Web Start應用 824
13.5.2 The JNLP API / JNLP API 829
Chapter 14: Concurrency /並發 839
14.1 What Are Threads? / 什麼是綫程 840
14.1.1 Using Threads to Give Other Tasks a Chance / 使用綫程為其他任務提供執行機會 846
14.2 Interrupting Threads / 中斷綫程 851
14.3 Thread States / 綫程狀態 855
14.3.1 New Threads / 新創建綫程 855
14.3.2 Runnable Threads / 可運行綫程 855
14.3.3 Blocked and Waiting Threads / 被阻塞綫程與等待綫程 856
14.3.4 Terminated Threads / 被終止的綫程 857
14.4 Thread Properties / 綫程屬性 858
14.4.1 Thread Priorities / 綫程優先級 858
14.4.2 Daemon Threads / 守護綫程 859
14.4.3 Handlers for Uncaught Exceptions / 未捕獲異常的處理器 860
14.5 Synchronization / 同步 862
14.5.1 An Example of a Race Condition / 競爭條件的一個案例 862
14.5.2 The Race Condition Explained / 競爭條件詳解 866
14.5.3 Lock Objects / 鎖對象 868
14.5.4 Condition Objects / 條件對象 872
14.5.5 The synchronized Keyword / synchronized關鍵字 878
14.5.6 Synchronized Blocks / 同步塊 882
14.5.7 The Monitor Concept / 監視器概念 884
14.5.8 Volatile Fields / volatile字段 885
14.5.9 Final Variables / final變量 886
14.5.10 Atomics / 原子 886
14.5.11 Deadlocks / 死鎖 889
14.5.12 Thread-Local Variables / 綫程局部變量 892
14.5.13 Lock Testing and Timeouts / 鎖測試與超時 893
14.5.14 Read / Write Locks / 讀/寫鎖 895
14.5.15 Why the stop and suspend Methods Are Deprecated / 為什麼棄用stop和suspend方法 896
14.6 Blocking Queues / 阻塞隊列 898
14.7 Thread-Safe Collections / 綫程安全的集閤 905
14.7.1 Efficient Maps, Sets, and Queues / 高效的映射、集和隊列 905
14.7.2 Atomic Update of Map Entries / 映射錶項的原子更新 907
14.7.3 Bulk Operations on Concurrent Hash Maps / 並發散列映射上的主要操作 909
14.7.4 Concurrent Set Views / 並發的集視圖 912
14.7.5 Copy on Write Arrays / 寫時復製的數組 912
14.7.6 Parallel Array Algorithms / 並行數組算法 912
14.7.7 Older Thread-Safe Collections / 較早的綫程安全的集閤 914
14.8 Callables and Futures / Callable與Future 915
14.9 Executors / 執行器 920
14.9.1 Thread Pools / 綫程池 921
14.9.2 Scheduled Execution / 預訂執行 926
14.9.3 Controlling Groups of Tasks / 控製任務組 927
14.9.4 The Fork-Join Framework / Fork-Join框架 928
14.9.5 Completable Futures / CompletableFuture 931
14.10 Synchronizers / 同步器 934
14.10.1 Semaphores / 信號量 935
14.10.2 Countdown Latches / 倒計時門栓 936
14.10.3 Barriers / 障柵 936
14.10.4 Exchangers / 交換器 937
14.10.5 Synchronous Queues / 同步隊列 937
14.11 Threads and Swing / 綫程與Swing 937
14.11.1 Running Time-Consuming Tasks / 運行耗時任務 939
14.11.2 Using the Swing Worker / 使用Swing工作綫程 943
14.11.3 The Single-Thread Rule / 單綫程規則 951
Appendix / 附錄 953

前言/序言


深入理解 Java 編程的基石——《Java 核心技術 捲 I:基礎知識(第 10 版)》 本書是享譽全球的 Java 權威指南的最新版,專注於深入淺齣地講解 Java 語言的核心概念與基礎知識。對於任何希望掌握 Java 編程、構建健壯應用程序的開發者而言,這都是一本不可或缺的參考書。第 10 版在繼承前代版本嚴謹、全麵的優點的基礎上,緊跟 Java 語言的發展步伐,引入瞭最新的特性和最佳實踐,確保讀者能夠學習到最實用、最前沿的 Java 知識。 本書分為上下兩冊,精心編排,循序漸進,旨在幫助讀者打下堅實的 Java 編程基礎。第一捲(即本書)聚焦於 Java 語言本身的基礎機製、核心類庫以及麵嚮對象編程的思想,為後續更深入的學習和更復雜的應用開發奠定堅實的基礎。 內容精要與知識體係: 本書的內容涵蓋瞭 Java 編程的方方麵麵,從最基本的語法結構到麵嚮對象設計的精髓,再到 Java 平颱的強大能力,都進行瞭詳盡的闡述。其核心內容可以概括為以下幾個主要方麵: 第一部分:Java 語言基礎與語法 Java 平颱概覽: 在正式進入編程之前,本書首先會介紹 Java 平颱的整體架構,包括 Java 虛擬機(JVM)、Java 應用程序接口(API)以及 Java 開發工具包(JDK)。理解這些底層概念對於編寫高效、可移植的 Java 程序至關重要。它解釋瞭 Java 如何實現“一次編寫,到處運行”的跨平颱特性,並簡要介紹瞭 JVM 的工作原理,為後續深入理解 Java 內存模型和垃圾迴收機製打下基礎。 Java 程序結構與基礎語法: 本部分詳細講解瞭 Java 程序的基本構成元素,包括類、方法、變量、錶達式和語句。讀者將學習如何定義類,如何創建對象,以及如何使用基本數據類型(如整型、浮點型、布爾型和字符型)和引用數據類型。本書還會深入講解 Java 的運算符,包括算術運算符、關係運算符、邏輯運算符、賦值運算符以及位運算符,並闡述它們的優先級和結閤性。 控製流程: 掌握程序流程的控製是編寫邏輯清晰、功能強大的程序的前提。本書將詳細介紹 Java 中的條件語句(`if-else`、`switch`)和循環語句(`for`、`while`、`do-while`),幫助讀者理解如何根據不同的條件執行特定的代碼塊,以及如何重復執行一段代碼。此外,還會涉及跳轉語句,如 `break` 和 `continue`,以及 `return` 語句在方法中的應用。 字符串: 字符串是 Java 編程中最常用的數據類型之一。本書將深入探討 `String` 類的特性,包括字符串的創建、拼接、查找、替換、分割等操作。讀者將瞭解 `String` 對象的不可變性,以及 `StringBuilder` 和 `StringBuffer` 在處理大量字符串操作時的優勢。 數組: 數組是用於存儲同類型元素的集閤。本書將講解如何聲明、初始化和訪問一維數組和多維數組,以及如何利用 Java 提供的工具類(如 `Arrays` 類)進行數組的排序、查找等操作。 第二部分:麵嚮對象編程(OOP)核心概念 類與對象: 麵嚮對象編程是 Java 的核心思想。本書將從最基礎的類和對象的概念講起,解釋類的定義、屬性(成員變量)和行為(成員方法)。讀者將學習如何實例化對象,如何通過對象訪問其屬性和調用其方法,以及如何理解封裝、繼承和多態這三大麵嚮對象編程的基石。 繼承: 繼承是實現代碼復用和構建類層次結構的關鍵。本書將詳細講解 `extends` 關鍵字的使用,父類與子類的關係,以及方法的重寫(Override)和屬性的繼承。它還會探討 `super` 關鍵字的應用,以及如何通過繼承構建靈活、可擴展的係統。 多態: 多態是麵嚮對象編程的強大之處,它允許不同類的對象對同一個消息做齣不同的響應。本書將深入講解多態的概念,包括方法重載(Overload)和方法重寫(Override),以及運行時多態(Dynamic Dispatch)的實現機製。理解多態對於編寫更加靈活和可維護的代碼至關重要。 抽象類與接口: 抽象類和接口是實現抽象化和定義規範的重要工具。本書將闡述抽象類的用途,如何定義抽象方法和抽象類,以及接口的定義、實現和多實現。它會詳細對比抽象類和接口的異同,幫助讀者根據實際需求選擇閤適的機製。 封裝: 封裝是將數據和操作數據的方法捆綁在一起,隱藏內部細節,隻對外提供公共接口的機製。本書將詳細講解訪問修飾符(`public`、`private`、`protected`、默認)的作用,以及如何通過 getter 和 setter 方法來控製對類屬性的訪問,實現數據的安全性和可管理性。 第三部分:Java 核心類庫與實用工具 對象與 getClass(): 本部分將深入講解 `Object` 類作為所有 Java 類的根類。讀者將學習 `Object` 類提供的通用方法,如 `equals()`、`hashCode()`、`toString()` 等,並理解它們在對象比較、集閤存儲等方麵的作用。`getClass()` 方法的使用和反射機製的初步介紹也會包含在內。 參數可變的列錶——ArrayList: `ArrayList` 是 Java 中最常用的動態數組實現。本書將詳細講解 `ArrayList` 的創建、添加、刪除、查找等操作,以及其內部的工作原理,包括容量的自動擴充。 字符串與文本處理: 除瞭基本的字符串操作,本書還會涉及 `Scanner` 類用於從各種輸入源(如控製颱、文件)讀取數據,以及 `StringTokenizer` 和 `regex`(正則錶達式)等更高級的文本處理工具。 日期與時間: Java 提供瞭豐富的日期和時間處理類。本書將介紹 `LocalDate`、`LocalTime`、`LocalDateTime`、`Instant`、`Duration`、`Period` 等 `java.time` 包中的新一代日期時間 API,以及如何進行日期時間的格式化、解析、計算和比較。 數值處理: 本書將介紹 `BigInteger` 和 `BigDecimal` 類,用於處理超過基本數據類型範圍的整數和浮點數,這在金融計算等領域尤為重要。此外,還會涉及 `Math` 類的常用數學函數。 異常處理: 健壯的程序離不開有效的異常處理。本書將詳細講解 `try-catch-finally` 語句塊,不同類型的異常(檢查型異常和運行時異常),以及如何定義和拋齣自定義異常。掌握異常處理能夠幫助開發者編寫齣更穩定、更易於調試的程序。 文件輸入/輸齣(I/O): 文件操作是應用程序與外部世界交互的重要方式。本書將講解 Java I/O 流的體係結構,包括字節流和字符流,以及如何使用 `FileInputStream`、`FileOutputStream`、`BufferedReader`、`BufferedWriter` 等類進行文件的讀寫操作。 本書的特色與價值: 權威性與全麵性: 作為“Java 核心技術”係列圖書的最新版本,本書匯集瞭作者在 Java 領域深厚的知識積纍和多年的教學經驗,內容嚴謹,覆蓋全麵,是學習 Java 基礎知識最權威的參考資料之一。 循序漸進的教學法: 本書的結構設計非常閤理,從最基礎的概念入手,逐步深入,讓讀者能夠輕鬆理解並掌握復雜的編程主題。每章都包含大量示例代碼,幫助讀者將理論知識轉化為實踐。 實踐導嚮: 大量的代碼示例貫穿全書,這些示例不僅僅是功能的展示,更是解決實際問題的範例。讀者可以通過運行、修改和擴展這些示例,加深對知識點的理解,並培養實際編程能力。 對新特性的關注: 第 10 版緊密跟蹤 Java 語言的最新發展,引入瞭 Java 17 以及更早版本中的重要新特性,例如 `var` 關鍵字、record 類型、sealed classes 的初步介紹等,確保讀者學習到的知識是最新、最實用的。 優秀的語言與排版: 英文原版以其清晰、準確的語言而著稱,即使是初學者也能輕鬆理解。配閤精心設計的排版,使得閱讀體驗更加舒適,有助於集中注意力。 適用讀者: 本書適閤所有希望係統學習 Java 編程的讀者,包括: 編程初學者: 對編程有興趣,希望從 Java 入門,打下堅實基礎的初學者。 有其他語言基礎的開發者: 希望轉入 Java 開發,或希望鞏固和深化 Java 基礎知識的開發者。 在校學生: 計算機科學、軟件工程等相關專業的學生,用於課堂學習和課程輔助。 軟件工程師: 希望提升 Java 編程技能,深入理解 Java 核心機製的在職工程師。 總之,《Java 核心技術 捲 I:基礎知識(第 10 版)》不僅是一本教材,更是一本指南,它將帶領您走進 Java 的世界,為您開啓一段精彩的編程之旅。通過對本書內容的深入學習和反復實踐,您將能夠自信地運用 Java 語言解決各種編程挑戰,為未來更高級的 Java 開發打下堅實的基礎。

用戶評價

評分

我得說,這套《Java核心技術》第十版,絕對是我近幾年來遇到的最紮實、最全麵的Java入門到進階讀物瞭。拿到上下冊,沉甸甸的,但翻開來,那種精煉的語言和清晰的邏輯立刻吸引瞭我。初學者可能會覺得一些概念有點晦澀,比如堆和棧的區彆,對象的生命周期,甚至是異常處理的各種細節,但作者的處理方式非常有條理,他會先給齣核心概念,然後通過精心設計的代碼示例來演示,讓你在實踐中去體會。我特彆喜歡它講解反射和注解的部分,一開始我對這些東西感到非常神奇,覺得它們怎麼能實現動態調用和元數據處理,看瞭書裏細緻的講解,配閤著`Class`類、`Method`類等API的演示,我纔豁然開朗,原來這一切都有跡可循。還有一個讓我印象深刻的章節是關於IO流的部分,它把字節流和字符流、緩衝流、對象流等等都講得非常透徹,並且解釋瞭它們各自的應用場景和優缺點,我之前在處理文件讀寫的時候經常會遇到各種亂碼或者性能問題,看瞭這部分之後,我能更準確地選擇閤適的流類,並且優化代碼,效率提升不少。這本書的內容覆蓋麵非常廣,從最基本的類、對象、繼承、多態,到更高級的並發編程、泛型、網絡編程,甚至是一些底層原理,都涉及到瞭。它不是那種隻教你寫代碼的“速成手冊”,而是讓你真正理解Java這門語言的精髓。

評分

說實話,接觸這本《Java核心技術》第十版之前,我對Java的理解停留在“會寫”的層麵,很多東西都是照貓畫虎,知其然不知其所以然。拿到這本書,就像是給我打開瞭一扇通往Java世界深層的大門。我記得在學習集閤框架的時候,對於`List`、`Set`、`Map`這些接口和它們的具體實現類,比如`ArrayList`、`LinkedList`、`HashSet`、`HashMap`,到底有什麼區彆,以及它們的性能特點,之前都是模模糊糊的。這本書就用非常直觀的圖示和詳細的性能分析,把我徹底搞明白瞭。它不僅解釋瞭插入、刪除、查找的復雜度,還解釋瞭它們在內部實現上的差異,比如`ArrayList`的動態數組擴容,`LinkedList`的雙嚮鏈錶結構,`HashMap`的哈希錶和鏈錶/紅黑樹結閤的實現。我之前在項目中選擇集閤類型的時候,常常是憑感覺,看瞭這本書之後,我能根據實際需求,選擇最閤適的集閤,這在很多時候能顯著提升程序的性能。另外,它對異常處理的講解也非常深入,不僅講瞭如何拋齣和捕獲異常,還講瞭checked exception和unchecked exception的區彆,以及如何設計閤理的異常處理機製,這對於編寫健壯的Java程序至關重要。這本書的內容是如此豐富,我感覺每讀一遍都會有新的收獲,它是那種值得反復研讀的經典之作。

評分

這本書,尤其是它第十版的上下冊,已經成為瞭我開發生涯中的一個重要裏程碑。我經常把裏麵的知識點翻齣來對照,就好像有一位經驗豐富的導師在我身邊隨時指導。在我學習泛型的時候,我之前隻是知道怎麼用,但對於`<? extends T>`和`<? super T>`這種通配符的理解一直都很模糊,不知道什麼時候該用哪個,有什麼區彆。直到我讀瞭這本書,它用非常形象的比喻和詳細的代碼示例,把泛型的“生産-消費”原則以及協變、逆變的概念講得明明白白。這讓我能夠寫齣更安全、更靈活的泛型代碼,並且理解瞭為什麼很多Java庫的設計要使用泛型。此外,它對Java反射機製的講解也是我非常欣賞的一部分,我之前覺得反射是一門“黑魔法”,可以動態地創建對象、調用方法,但不知道背後的原理。這本書讓我瞭解瞭`Class`對象、`Method`對象、`Field`對象等等,以及如何使用它們來在運行時操作類和對象。這對於我實現一些框架性的功能,比如ORM框架或者單元測試框架,提供瞭非常重要的基礎。而且,它還深入探討瞭Java的內存模型,解釋瞭happens-before關係,這對於理解並發編程中的原子性、可見性、有序性至關重要。可以說,這本書不僅教我“如何做”,更讓我理解瞭“為什麼這麼做”,這種深刻的理解,讓我在麵對復雜的技術問題時,能夠更加遊刃有餘。

評分

這本書,我斷斷續續啃瞭好幾個月瞭,簡直是開發路上的“聖經”。拿到手的時候,就被它厚重的分量鎮住瞭,感覺就像抱著一本寶典,裏麵藏著無數通往Java武林秘籍的鑰匙。剛開始學的時候,確實有點力不從心,那些抽象的概念,像什麼JVM、內存模型,還有各種設計模式,第一次接觸,腦袋裏跟漿糊一樣。但是,這套書的好處就在於,它不會急於求成,而是循序漸進,從最基礎的語法、數據類型講起,一點點地滲透,讓你感覺自己是真正在打牢地基。我記得有一次,為瞭弄懂多綫程的同步問題,我反復看瞭好幾遍,書裏舉的例子,還有各種流程圖,配閤著代碼,纔慢慢理清瞭裏麵的門道。更重要的是,它不僅僅是告訴你“是什麼”,還會告訴你“為什麼”,這種刨根問底的精神,讓我在麵對實際開發中的各種疑難雜癥時,多瞭一份底氣。有時候,即便我沒遇到書裏直接提及的問題,但通過理解瞭書裏的原理,也能自己舉一反三,找到解決問題的思路。而且,這本書的代碼示例都非常經典,我常常把它們當作模闆,在自己的項目中進行修改和擴展,這極大地提高瞭我的學習效率和開發速度。雖然書很厚,但內容充實,每一頁都凝聚著作者的經驗和智慧,真的是物超所值。

評分

我必須承認,《Java核心技術 捲I 基礎知識 第10版》這套書,真的是把我從一個Java的“小白”推嚮瞭一個“進階者”。在我學習的初期,我曾被各種繁雜的概念搞得暈頭轉嚮,比如JVM的內存區域劃分,堆、棧、方法區等等,抽象而又難以捉摸。這本書的獨特之處在於,它並沒有一味地灌輸知識點,而是用一種循序漸進的方式,結閤大量的代碼示例,把這些概念講得既清晰又易懂。我記得我曾花瞭整整一個周末,去研究書裏關於垃圾迴收機製的那部分,從新生代、老年代,到各種迴收算法,比如Serial、Parallel、CMS、G1,雖然聽起來很復雜,但作者通過類比和圖示,讓我逐漸理解瞭它們的工作原理和適用場景。這對於我之後優化Java程序的內存占用,避免內存泄漏,起到瞭至關重要的作用。而且,這本書的語言風格也很親切,不像很多技術書籍那樣冰冷枯燥,它會時不時地穿插一些作者的經驗之談,讓你感覺像是在和一個資深的開發者交流。我特彆喜歡它在講解多綫程編程時,對`synchronized`關鍵字、`Lock`接口、`Volatile`關鍵字的詳細闡述,以及對綫程池的講解,這讓我能夠寫齣更安全、更高效的多綫程代碼,避免瞭之前經常遇到的數據競爭和死鎖問題。總而言之,這本書的內容深度和廣度都非常驚人,它為我構建瞭一個紮實的Java知識體係。

評分

英文版的看起來直觀明瞭。

評分

經典,值得一看

評分

老公買來學習java技術,以完成單位任務的,很厚一本

評分

蘇是全英文的還是不錯嘛,我還是想再好好看一下再來評價

評分

不錯不錯,是正版

評分

很棒 東西全 發貨快 東西實惠 老客戶瞭。

評分

整體不錯,字也很清晰,雖然是全英文就當時學英語瞭

評分

包裝太差瞭,拿到手的書都已經磨破瞭好幾個地方,就不能多包幾層嗎?

評分

包裝完整,沒有損壞,然後有封膜,很清楚,內容很好。

相關圖書

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

© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有