Java核心技术·卷I(原书第12版)

  • Post author:
  • Post category:java


内容介绍…

随着Java的发展,《

Java核心技术

》从第1版到第11版一路走来,受到了广大Java程序员的青睐,成为最畅销的Java经典书籍。

这本书已经过彻底的修改,涵盖了Java 17的新特性。新版延续了上一版的优良传统,以数百个实际工程案例全面系统地讲解了J

ava语言的核

心概念、语法、重要特性和开发方法。

读者应在充分理解Java语言和Java类库的基础上,灵活应用Java提供的高级特性,包括面向对象编程、反射和代理、接口和内部类、异常处理、泛型编程、集合框架、事件监听器模型、图形用户界面设计和并发。

书中共有12个章节,向你展示了Java的学习之路:

☉第1章概述了Java语言的特性和功能;

☉第二章详细讨论了如何下载安装JDK以及本书的程序示例;

☉第三章开始讨论Java语言,包括变量、循环和简单函数;

☉第四章介绍了面向对象的两大基石——封装的重要概念,以及Java语言实现封装的机制——类和方法;

☉第五章介绍了面向对象的另一个重要概念——继承,它使程序员能够使用现有的类并根据需要修改它们;

☉第六章展示了如何使用Java的接口(可以帮

助你充分获得

Java完整的面向对象编程能力)、lambda表达式(用来表达可以在以后某个时间点执行的代码块)和内部类;

☉第7章讨论异常处理并给出了很多实用的调试技巧;

☉第八章简要介绍泛型程序设计,使程序更具可读性和安全性;

☉第九章讨论Java平台的集合框架以及如何充分利用内置的标准集合;

☉第10章介绍GUI编程和编写代码来响应事件;

☉第11章详细讨论了Swing GUI工具包,以构建一个跨平台的图形用户界面。

☉第12章讨论了并发性。

学完这本书,你将成为一名真正的Java程序员。这本书不仅能让你深入了解设计和实现Java应用程序所涉及的所有基础知识和Java特性,还能帮助你掌握开发Java程序所需的所有基本技能。我相信在学习Java的道路上有这本书的帮助,你的学习一定可以事半功倍。

抱怨

作者简介…

凯·霍斯特曼(凯·霍斯特曼)

圣何塞州立大学计算机科学系教授,Java技术的坚定倡导者,国际计算机协会(ACM)计算机教育的杰出成员,常年在各种国际计算机峰会上进行技术分享,30多年来一直向硅谷派遣计算机专业人员。他是《Java核心技术》两卷本的作者,也是《重要的,第二版》(Addison-Wesley,2018)的Core Java SE 9和《重要的,第二版》(Addison-Wesley,2017)的作者。他还为职业程序员和计算机科学学生写了几十本其他的书。

目录

●第1章Java编程概述1

1.1 Java编程平台1

1.2 Java白皮书的关键术语2

简单性2

面向对象3

分布式3

稳健性3

安全3

架构中立性4

可移植性4

解释性说明5

高性能5

多线程5

动力学6

1.3 Java小程序和互联网6

1.4 Java开发简史7

1.5关于Java 10的常见误解

●第2章Java编程环境12

2.1安装Java开发工具包12

2.1.1下载JDK 12

2.1.2建立JDK

安装源文件和文档15

2.2使用命令行工具15

2.3使用集成开发环境19

2.4 JShell 22

●第3章Java 25的基本编程结构

3.1简单的Java程序25

3.2附注28

3.3数据类型28

3.3.1整数29

浮点型30

3.3.3 char类型31

3.3.4 Unicode和char类型31

布尔类型32

3.4变量和常数33

声明变量33

初始化变量34

常数35

3.4.4枚举类型35

3.5操作员36

算术运算符36

3.5.2数学函数和常数36

3.5.3数字类型之间的转换38

3.5.4强制类型转换39

转让39

3.5.6自递增和自递减运算符40

关系和布尔运算符40

条件运算符41

开关表达式41

3.5.10位运算符42

括号和运算符级别43

3.6字符串44

子字符串44

拼接44

3.6.3字符串不可变45

3.6.4检查字符串是否相等46

3.6.5空字符串和空字符串47

3.6.6代码点和代码单元47

管柱API 49

3.6.8阅读在线API文档51

3.6.9构建字符串53

文本块54

3.7输入和输出56

3.7.1读取输入56

打印格式58

文件输入和输出60

3.8控制流程62

块范围62

条件语句63

循环64

确定性周期68

3.8.5多项选择:开关语句71

3.8.6中断控制流的语句75

3.9大数77

3.10阵列79

3.10.1声明数组79

3.10.2访问数组元素81

3.10.3每个回路81

阵列副本82

命令行参数83

阵列排序84

多维数组86

不规则阵列89

●第4章对象和类别92

4.1面向对象编程概述92

第93类

目标94

4.1.3识别等级94

4.1.4类别之间的关系95

4.2使用预定义的类别96

4.2.1对象和对象变量96

4 . 2 . 2 Java类库99中的LocalDate类

4.2.3转换器方法和存取器方法101

4.3自定义类别104

4.3.1员工类别104

4.3.2使用多个源文件106

4.3.3解析雇员类107

4.3.4从构造器开始108

4.3.5用var 109声明局部变量

4.3.6使用空值来表示109

隐式参数和显式参数110

4.3.8包装的优势111

4.3.9基于类别的访问权限113

私有方法114

4.3.11 f?最终实例字段114

4.4静态字段和静态方法115

4.4.1静态字段115

静态常数116

静态方法116

工厂方法117

主要方法118

4.5方法参数120

4.6对象构造125

过载126

默认字段初始化126

4.6.3不带参数的构造函数126

4.6.4显式字段初始化127

参数名称128

4.6.6调用另一个构造函数129

初始化模块129

4.6.8物体破坏和F?初始化方法133

4.7记录134

4.7.1记录的概念134

4.7.2构造器:标准、定制和简洁136

4.8包138个

4.8.1包装名称138

4 . 8 . 2 138类的进口

静态导入140

4.8.4将类别140添加到包装中

4.8.5包装访问143

4.8.6类别路径144

4.8.7设置类路径146

4.9 JAR文件146

创建JAR文件146

4.9.2列表文件147

可执行JAR文件148

4.9.4多版本JAR文件149

4.9.5命令行选项的说明150

4.10文件注释151

插入注释151

课堂笔记152

方法注释152

4.10.4字段注释153

一般注释153

包装说明154

注释提取154

4.11课堂设计技巧155

●第五章继承158

5.1类、超类和子类158

定义子类158

5.1.2覆盖方法160

5.1.3子类构造器161

5.1.4继承层次结构165

5.1.5多态性165

理解方法调用166

5.1.7防止继承:F?最终类和方法169

5.1.8强制类型转换170

5.1.9模式匹配的实例172

受保护的访问173

5.2对象:所有类的超类174

5.2.1对象类型的变量174

5.2.2等于方法175

5.2.3相等测试和继承176

哈希码方法179

toString方法181

5.3通用阵列列表186

声明数组列表187

5.3.2访问数组列表元素189

5.3.3类型与原始数组列表的兼容性192

5.4对象包装和自动包装193

5.5参数数量可变的方法196

5.6抽象类197

5.7枚举类201

5.8密封等级203

5.9反射208

5.9.1第209类

5.9.2声明异常的介绍211

资源212

5.9.4利用反射分析类的能力213

5.9.5使用反射在运行时分析对象220

5.9.6使用反射编写通用数组代码224

5.9.7调用任意方法和构造函数227

5.10继承的设计技能231

●第6章接口、lambda表达式和内部类233

6.1接口233

6.1.1接口概念233

6.1.2接口的属性239

6.1.3接口和抽象类240

6.1.4静态和私有方法241

默认方法241

6.1.6解决默认方法冲突242

6.1.7接口和回调244

6.1.8比较器接口246

6.1.9对象克隆247

6.2λ表达式252

6.2.1为什么要引入lambda表达式253?

6 . 2 . 2λ表达式的语法254

6.2.3功能界面256

方法参考258

6.2.5建造商参考260

可变范围261

处理lambda表达式263

6.2.8再谈比较器266

6.3内部类别267

6.3.1使用内部类访问对象状态267

6.3.2内部类的特殊语法规则270

6.3.3内部类是否有用、必要和安全271

6.3.4本地内部类别273

6.3.5通过外部方法访问变量274

6.3.6匿名内部类275

静态内部类278

6.4服务加载器281

6.5代理283

6.5.1何时使用代理284

6.5.2创建代理对象284

6.5.3代理类别288的特征

●第7章异常、断言和日志290

7.1处理错误290

7.1.1异常分类291

7.1.2声明已检查的异常293

7.1.3如何抛出异常295

7.1.4创建异常类296

7.2捕捉异常297

7.2.1捕捉异常概述297

7.2.2捕捉多个异常299

7.2.3再次抛出异常和异常链300。

7.2.4 f?最后,第301条

7.2.5资源尝试语句303

7.2.6分析堆栈跟踪元素305

7.3使用异常的技巧308

7.4使用断言311

7.4.1断言的概念312

7.4.2启用和禁用断言313

7.4.3使用断言完成参数检查313

7.4.4使用断言来提供假设文档314

7.5日志315

基本日志316

7.5.2高级日志316

7.5.3修改日志管理器配置318

本地化320

处理器321

过滤器324

7.5.7格式器324

7.5.8日志技能324

7.6调试技巧332

第8章泛型编程337

8.1为什么使用泛型编程337

8.1.1类型参数的好处337

8.1.2谁想成为通用程序员338

8.2定义简单的通用类339

8.3通用方法341

8.4类型变量的定义342

8.5通用代码和虚拟机344

8.5.1擦除类型344

8.5.2转换通用表达式346

8.5.3转换通用方法346

8.5.4调用遗留代码348

8.6限制和局限349

8.6.1类型参数不能用基本类型实例化349

8.6.2运行时类型查询只适用于原始类型349

8.6.3无法创建参数化类型349的数组

8.6.4 Varargs警告350

8.6.5类型变量351不能被实例化。

8.6.6无法构造泛型数组352

8.6.7通用类353的静态上下文中的无效类型变量

8.6.8不能抛出或捕获泛型类的实例354

8.6.9您可以取消检查类型异常的检查354

8.6.10注意擦除后的冲突356

8.7通用类型的继承规则357

8.8通配符类型359

8.8.1通配符概念359

8.8.2通配符的超类型限定360

8.8.3无限通配符363

8.8.4通配符捕获363

8.9反射和泛型365

8.9.1通用类别类别365

8.9.2使用类参数进行类型匹配366

8.9.3虚拟机中的通用类型信息367

8.9.4类型文字量370

●第九章收藏376

9.1 Java集合框架376

9.1.1集合接口与实现的分离376

9.1.2收集界面379

迭代器379

9.1.4通用实用方法382

9.2收集框架中的接口384

9.3特定集合386

9.3.1链接列表387

数组列表395

9.3.3哈希集396

9.3.4采油树组399

9.3.5队列和队列403

9.3.6优先级队列404

9.4映射405

9.4.1基本映射操作405

9.4.2更新映射条目408

9.4.3映射视图409

9.4.4弱哈希映射411

9.4.5使用映射链接哈希集412

9.4.6枚举设置和映射413

9.4.7识别散列映射413

9.5复制和查看415

9.5.1小集合415

9.5.2不可修改的副本和视图417

子范围418

9.5.4检查视图419

9.5.5同步视图419

9.5.6可选操作说明420

9.6算法423

9.6.1为什么使用通用算法423

9.6.2分类和混合排列424

二分搜索法427

简单算法428

9.6.5批量操作429

9.6.6集合和数组之间的转换430

9.6.7编写自己的算法431

9.7传统收藏432

9.7.1哈希表类432

列举432

属性映射433

9.7.4堆栈436

9.7.5位组437

第十章图形用户界面编程441

0.1 Java用户界面工具包441简史

0.2显示窗口442

10.2.1创建表格442

0.2.2表单属性444

0.3显示组件中的信息448

10.3.1加工2D图形452

使用颜色458

10.3.3使用字体459

0.3.4显示图像465

0.4事件处理466

基本事件处理概念466

10.4.2示例:处理按钮点击事件467

10.4.3指定监听器471简明

472级适配器

0.4.5行动473

0.4.6鼠标事件478

10.4.7 AWT事件继承层次482

0.5首选API 485

第11章Swing用户界面模块491

11.1 Swing和模型-视图-控制器设计模式491

11.2布局管理概述495

布局管理器495

边框布局497

网格布局498

1.3文本输入499

文本字段499

11.3.2标签和标签组件501

1.3.3密码域502

文本区域502

1.3.5滚动窗格503

1.4选择组件505

1.4.1复选框506

1.4.2单选按钮508

边界511

组合框513

滑杆516

1.5菜单522

菜单结构522

菜单项中的图标524

11.5.3复选框和单选按钮菜单项525

弹出菜单526

1.5.5键盘助记键和快捷键527

11.5.6启用和禁用菜单项528

工具栏532

工具提示534

1.6复杂布局管理534

1.6.1网格封装布局535

1.6.2自定义布局管理器543

1.7对话框547

选项对话框547

创建对话框551

1.7.3数据交换

文件对话框560

●第十二章并发567

12.1什么是螺纹567

12.2线程状态572

12.2.1创建新线程572

可运行线程572

12.2.3阻塞和等待线程573

12.2.4终止线程573

12.3线程属性575

12.3.1中断线程575

12.3.2守护程序线程578

12.3.3线程名称578

12.3.4未捕获异常的处理器578

线程优先级579

2.4同步580

12.4.1竞争条件580的示例

12.4.2竞争条件的详细解释582

锁定对象584

12.4.4条件对象587

12.4.5同步关键字591

同步模块595

12.4.7监视器概念597

12.4.8易变字段597

12.4.9 f?最终变量598

原子数599

死锁600

12.4.12为什么停止和暂停方法被放弃603

12.4.13按需初始化604

12.4.14线程局部变量605

2.5线程安全集合606

2.5.1阻塞队列607

2.5.2有效的映射、集合和队列612

12.5.3映射条目的原子更新614

12.5.4发散列映射的批量操作617

12.5.5并发集合视图618

12.5.6写入时复制阵列619

12.5.7并行阵列算法619

12.5.8早期的线程安全集合620

12.6任务和线程池621

12.6.1可赎回和期货621

致动器622

12.6.3控制工作组625

12.6.4分叉连接框架630

12.7异步计算632

12.7.1未来632可以完成。

12.7.2组合可以完成未来634。

12.7.3用户界面回调中长时间运行的任务639

2.8流程646

12.8.1建立过程646

12.8.2运行流程647

12.8.3工艺手柄648

附录Java关键字652



版权声明:本文为jascl原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。