Java核心技术 卷I:基础知识(第11版•英文版)(上下册) PDF格式高清电子书免费下载

Java核心技术 卷I:基础知识(第11版•英文版)(上下册)

作者 [美]凯·S. 霍斯特曼(Cay S. Horstmann)
译者
编辑 杨海玲
出版社 人民邮电出版社
出版日期 2018
页数 786
格式 Paper book / ebook (PDF)
ISBN 978-7-115-50492-0
评分
价格 149
  • 内容简介
  • 免费下载
  • 图书目录
  • 作者简介
  • 出版信息
本书是经典的《Java核心技术 卷I:基础知识》的新版。这一版进行了全面更新,以反映Java SE 9至11的最新特性。书中囊括了Java的全部基础知识,提供了大量完整且具有实际意义的应用示例,详细介绍了Java语言基础、面向对象编程、反射与代理、接口与内部类、事件监听器模型、使用Swing UI工具、打包应用程序、异常处理、登录与调试、泛型编程、集合框架、多线程和并发等内容。

本书是经典的《Java核心技术 卷I:基础知识》的新版。这一版对全书进行了全面更新,以反映Java SE 9、Java SE 10和Java SE 11的特性。

书中囊括了Java的全部基础知识,提供了大量完整且具有实际意义的应用示例,详细介绍了Java语言基础、面向对象编程、反射与代理、接口与内部类、事件监听器模型、使用Swing UI工具进行图形用户界面程序设计、打包应用程序、异常处理、登录与调试、泛型编程、集合框架、多线程和并发等内容。

Java核心技术 卷I:基础知识(第11版•英文版)(上下册) PDF格式高清电子书免费下载

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 / 安全 5

1.2.6 Architecture-Neutral / 体系结构中立 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 / 动态 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编程环境 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 / 使用集成开发环境 29

2.4 JShell 32

Chapter 3: Fundamental Programming Structures in Java / Java的基本编程结构 37

3.1 A Simple Java Program / 一个简单的Java程序 38

3.2 Comments / 注释 41

3.3 Data Types / 数据类型 42

3.3.1 Integer Types / 整型 43

3.3.2 Floating-Point Types / 浮点型 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 / 运算符 52

3.5.1 Arithmetic Operators / 算术运算符 52

3.5.2 Mathematical Functions and Constants / 数学函数和常量 54

3.5.3 Conversions between Numeric Types / 数值类型之间的转换 56

3.5.4 Casts / 强制类型转换 57

3.5.5 Combining Assignment with Operators / 组合赋值运算符 58

3.5.6 Increment and Decrement Operators / 自增与自减运算符 58

3.5.7 Relational and boolean Operators / 关系与boolean运算符 59

3.5.8 Bitwise Operators / 位运算符 60

3.5.9 Parentheses and Operator Hierarchy / 括号与运算符优先级 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 / 构建字符串 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 / 循环 91

3.8.4 Determinate Loops / 确定性循环 95

3.8.5 Multiple Selections—The switch Statement / 多重选择:switch语句 99

3.8.6 Statements That Break Control Flow / 用于跳出控制流的语句 102

3.9 Big Numbers / 大数 105

3.10 Arrays / 数组 108

3.10.1 Declaring Arrays / 声明数组 108

3.10.2 Accessing Array Elements / 访问数组元素 109

3.10.3 The “for each” Loop / “for each”循环 110

3.10.4 Array Copying / 数组复制 111

3.10.5 Command-Line Parameters / 命令行参数 112

3.10.6 Array Sorting / 数组排序 113

3.10.7 Multidimensional Arrays / 多维数组 116

3.10.8 Ragged Arrays / 不规则数组 120

Chapter 4: Objects and Classes / 对象与类 125

4.1 Introduction to Object-Oriented Programming / 面向对象编程简介 126

4.1.1 Classes / 类 127

4.1.2 Objects / 对象 128

4.1.3 Identifying Classes / 识别类 129

4.1.4 Relationships between Classes / 类之间的关系 129

4.2 Using Predefined Classes / 使用预定义类 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 / 从构造器开始 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 / 隐式参数与显式参数 150

4.3.8 Benefits of Encapsulation / 封装的好处 151

4.3.9 Class-Based Access Privileges / 基于类的访问权限 154

4.3.10 Private Methods / 私有方法 155

4.3.11 Final Instance Fields / final实例字段 155

4.4 Static Fields and Methods / 静态的字段与方法 156

4.4.1 Static Fields / 静态字段 156

4.4.2 Static Constants / 静态常量 157

4.4.3 Static Methods / 静态方法 158

4.4.4 Factory Methods / 工厂方法 159

4.4.5 The main Method / main方法 160

4.5 Method Parameters / 方法参数 163

4.6 Object Construction / 对象构建 170

4.6.1 Overloading / 重载 170

4.6.2 Default Field Initialization / 默认字段初始化 171

4.6.3 The Constructor with No Arguments / 无参构造器 172

4.6.4 Explicit Field Initialization / 显式字段初始化 173

4.6.5 Parameter Names / 参数名 174

4.6.6 Calling Another Constructor / 调用另一个构造器 175

4.6.7 Initialization Blocks / 初始化块 175

4.6.8 Object Destruction and the finalize Method / 对象析构与finalize方法 180

4.7 Packages / 包 180

4.7.1 Package Names / 包名 181

4.7.2 Class Importation / 导入类 181

4.7.3 Static Imports / 静态导入 183

4.7.4 Addition of a Class into a Package / 将类添加到某个包中 184

4.7.5 Package Access / 包访问权限 187

4.7.6 The Class Path / 类路径 189

4.7.7 Setting the Class Path / 设置类路径 191

4.8 JAR Files / JAR文件 192

4.8.1 Creating JAR files / 创建JAR文件 192

4.8.2 The Manifest / 清单文件 193

4.8.3 Executable JAR Files / 可执行的JAR文件 194

4.8.4 Multi-Release JAR Files / 支持多个Java版本的JAR文件 195

4.8.5 A Note about Command-Line Options / 关于命令行选项的说明 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 / 类设计建议 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 / 子类构造器 211

5.1.4 Inheritance Hierarchies / 继承层次 216

5.1.5 Polymorphism / 多态 217

5.1.6 Understanding Method Calls / 理解方法调用 218

5.1.7 Preventing Inheritance: Final Classes and Methods / 阻止继承:final修饰的类和方法 221

5.1.8 Casting / 强制类型转换 223

5.1.9 Abstract Classes / 抽象类 225

5.1.10 Protected Access / 受保护访问 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 / 泛型数组列表 248

5.3.1 Declaring Array Lists / 声明数组列表 248

5.3.2 Accessing Array List Elements / 访问数组列表的元素 251

5.3.3 Compatibility between Typed and Raw Array Lists / 类型化和原始数组列表的兼容性 255

5.4 Object Wrappers and Autoboxing / 对象包装器与自动装箱 256

5.5 Methods with a Variable Number of Parameters / 参数数量可变的方法 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 / 使用反射在运行时分析对象 277

5.7.6 Using Reflection to Write Generic Array Code / 使用反射编写泛型数组代码 283

5.7.7 Invoking Arbitrary Methods and Constructors / 调用任意方法和构造器 286

5.8 Design Hints for Inheritance / 继承的设计建议 290

Chapter 6: Interfaces, Lambda Expressions, and Inner Classes / 接口、Lambda表达式和内部类 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 / 静态和私有方法 306

6.1.5 Default Methods / 默认方法 307

6.1.6 Resolving Default Method Conflicts / 解决默认方法的冲突 308

6.1.7 Interfaces and Callbacks / 接口与回调 310

6.1.8 The Comparator Interface / Comparator接口 313

6.1.9 Object Cloning / 对象克隆 314

6.2 Lambda Expressions / Lambda表达式 322

6.2.1 Why Lambdas / 为什么引入Lambda表达式 322

6.2.2 The Syntax of Lambda Expressions / Lambda表达式的语法 323

6.2.3 Functional Interfaces / 函数式接口 326

6.2.4 Method References / 方法引用 328

6.2.5 Constructor References / 构造器引用 332

6.2.6 Variable Scope / 变量作用域 333

6.2.7 Processing Lambda Expressions / 处理Lambda表达式 335

6.2.8 More about Comparators / 再谈Comparator 339

6.3 Inner Classes / 内部类 340

6.3.1 Use of an Inner Class to Access Object State / 使用内部类访问对象状态 341

6.3.2 Special Syntax Rules for Inner Classes / 内部类的特殊语法规则 345

6.3.3 Are Inner Classes Useful Actually Necessary Secure / 内部类是否有用、必要和安全 346

6.3.4 Local Inner Classes / 局部内部类 349

6.3.5 Accessing Variables from Outer Methods / 从外部方法访问变量 350

6.3.6 Anonymous Inner Classes / 匿名内部类 352

6.3.7 Static Inner Classes / 静态内部类 356

6.4 Service Loaders / 服务加载器 360

6.5 Proxies / 代理 362

6.5.1 When to Use Proxies / 何时使用代理 363

6.5.2 Creating Proxy Objects / 创建代理对象 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 / 创建异常类 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 / 使用断言检查参数 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 / 常见日志操作总结 415

7.6 Debugging Tips / 调试技巧 425

Chapter 8: Generic Programming / 泛型编程 431

8.1 Why Generic Programming / 为什么要使用泛型编程 432

8.1.1 The Advantage of Type Parameters / 类型参数的好处 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 / 泛型代码与虚拟机 441

8.5.1 Type Erasure / 类型擦除 441

8.5.2 Translating Generic Expressions / 翻译泛型表达式 442

8.5.3 Translating Generic Methods / 翻译泛型方法 443

8.5.4 Calling Legacy Code / 调用遗留代码 445

8.6 Restrictions and Limitations / 约束与局限性 447

8.6.1 Type Parameters Cannot Be Instantiated with Primitive Types / 类型参数不能用基本类型来实例化 447

8.6.2 Runtime Type Inquiry Only Works with Raw Types / 运行时类型查询只适用于原始类型 447

8.6.3 You Cannot Create Arrays of Parameterized Types / 不能创建参数化类型的数组 448

8.6.4 Varargs Warnings / 注意变长参数情况 448

8.6.5 You Cannot Instantiate Type Variables / 不能实例化类型变量 450

8.6.6 You Cannot Construct a Generic Array / 不能构造泛型数组 451

8.6.7 Type Variables Are Not Valid in Static Contexts of Generic Classes / 类型变量在泛型类的静态上下文中无效 452

8.6.8 You Cannot Throw or Catch Instances of a Generic Class / 不能抛出或捕获泛型类的实例 453

8.6.9 You Can Defeat Checked Exception Checking / 可以打破“检查型异常必须检查”的规则 454

8.6.10 Beware of Clashes after Erasure / 意类型擦除后的冲突 455

8.7 Inheritance Rules for Generic Types / 泛型类型的继承规则 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参数进行类型匹配 469

8.9.3 Generic Type Information in the Virtual Machine / 虚拟机中的泛型类型信息 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 / 将集合类的接口与实现分离 482

9.1.2 The Collection Interface / Collection接口 485

9.1.3 Iterators / 迭代器 485

9.1.4 Generic Utility Methods / 泛型的实用方法 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 / 数组列表 507

9.3.3 Hash Sets / 散列集 507

9.3.4 Tree Sets / 树形集 511

9.3.5 Queues and Deques / 队列与双端队列 516

9.3.6 Priority Queues / 优先级队列 518

9.4 Maps / 映射 519

9.4.1 Basic Map Operations / 基本映射操作 519

9.4.2 Updating Map Entries / 更新映射表项 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 / 集合与数组之间的转换 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 / 创建框架 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 / 示例:处理按钮点击事件 600

10.4.3 Specifying Listeners Concisely / 设置监听器的简洁方法 604

10.4.4 Adapter Classes / 适配器类 605

10.4.5 Actions / 动作 608

10.4.6 Mouse Events / 鼠标事件 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与模型-视图-控制器设计模式 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 / 网格布局 642

11.3 Text Input / 文本输入 643

11.3.1 Text Fields / 文本框 643

11.3.2 Labels and Labeling Components / 标签与标签组件 645

11.3.3 Password Fields / 密码框 647

11.3.4 Text Areas / 文本区域 647

11.3.5 Scroll Panes / 滚动窗格 648

11.4 Choice Components / 选择组件 651

11.4.1 Checkboxes / 复选框 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 / 菜单构建 672

11.5.2 Icons in Menu Items / 菜单项中的图标 675

11.5.3 Checkbox and Radio Button Menu Items / 复选框和单选按钮菜单项 676

11.5.4 Pop-Up Menus / 弹出菜单 677

11.5.5 Keyboard Mnemonics and Accelerators / 键盘助记符与快捷键 679

11.5.6 Enabling and Disabling Menu Items / 启用和禁用菜单项 682

11.5.7 Toolbars / 工具栏 687

11.5.8 Tooltips / 工具提示 689

11.6 Sophisticated Layout Management / 复杂的布局管理 690

11.6.1 The Grid Bag Layout / 网格袋布局 691

11.6.2 Custom Layout Managers / 定制布局管理器 702

11.7 Dialog Boxes / 对话框 706

11.7.1 Option Dialogs / 选项对话框 707

11.7.2 Creating Dialogs / 创建对话框 712

11.7.3 Data Exchange / 数据交换 716

11.7.4 File Dialogs / 文件对话框 723

Chapter 12: Concurrency / 并发 733

12.1 What Are Threads / 什么是线程 734

12.2 Thread States / 线程状态 739

12.2.1 New Threads / 新创建线程 740

12.2.2 Runnable Threads / 可运行线程 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 / 守护线程 746

12.3.3 Thread Names / 线程名 747

12.3.4 Handlers for Uncaught Exceptions / 未捕获异常的处理器 747

12.3.5 Thread Priorities / 线程优先级 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关键字 764

12.4.6 Synchronized Blocks / 同步块 768

12.4.7 The Monitor Concept / 监视器概念 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 / 阻塞队列 781

12.5.2 Efficient Maps, Sets, and Queues / 高效的映射、集和队列 789

12.5.3 Atomic Update of Map Entries / 映射表项的原子更新 790

12.5.4 Bulk Operations on Concurrent Hash Maps / 并发散列映射上的主要操作 794

12.5.5 Concurrent Set Views / 并发的集视图 796

12.5.6 Copy on Write Arrays / 写时复制的数组 797

12.5.7 Parallel Array Algorithms / 并行数组算法 797

12.5.8 Older Thread-Safe Collections / 较早的线程安全的集合 799

12.6 Tasks and Thread Pools / 任务和线程池 800

12.6.1 Callables and Futures / Callable与Future 800

12.6.2 Executors / 执行器 802

12.6.3 Controlling Groups of Tasks / 控制任务组 806

12.6.4 The Fork-Join Framework / Fork-Join框架 811

12.7 Asynchronous Computations / 异步计算 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 / 用户界面回调中的长期运行任务 823

12.8 Processes / 进程 831

12.8.1 Building a Process / 构建进程 832

12.8.2 Running a Process / 运行进程 834

12.8.3 Process Handles / 进程handle 835

Appendix / 附录 839

点击展开

点击收起

ISBN:978-7-115-50492-0
语言:
包装/印刷类型:
开本:16开
出版时间:2019-05-01 00:00:00
页数: