Java核心技术·卷I(原书第12版)
内容介绍...
随着Java的发展,《Java核心技术》从第1版到第11版一路走来,受到了广大Java程序员的青睐,成为最畅销的Java经典书籍。
这本书已经过彻底的修改,涵盖了Java 17的新特性。新版延续了上一版的优良传统,以数百个实际工程案例全面系统地讲解了Java语言的核心概念、语法、重要特性和开发方法。
读者应在充分理解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
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341