JAVA官方入门教程(第9版·JAVA 17)
- ISBN:9787302639589
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:556
- 出版时间:2023-07-01
- 条形码:9787302639589 ; 978-7-302-63958-9
本书特色
《Java官方入门教程(第9版·Java 17)》特色
•关键技能与概念 每章开头列出要介绍的技能和概念
•专家解答 以问答形式提供附加信息和实用提示
•练习 示范如何运用编程技能的紧贴实用的练习
•自测题 每章*后有一些测试题,以帮助读者扎实掌握Java技能
•语法注释 示例代码中的注释阐述所演示的编程技巧
内容简介
《Java官方入门教程(第9版·Java 17)》针对Java SE 17做了全面细致的更新,将引导你轻松学习**的核心Java编程技能。《Java官方入门教程(第9版·Java 17)》由畅销编程书作者Herbert Schildt撰写,开篇讲述基础知识,内容涉及如何创建、编译和运行Java程序。此后浓墨重彩地描述构成Java语言核心的关键字、语法和结构。本书还涵盖Java的一些更高级特性,如多线程编程、泛型、lambda表达式、模块、记录、密封类和Swing。另外,还介绍了Java的交互式编程工具JShell。本书通俗易懂、简明扼要、详略得当,成为全球数百万读者的选择。
目录
1.1 Java的历史和基本原则 2
1.1.1 Java的起源 3
1.1.2 Java与C和C 的关系 3
1.1.3 Java对Internet的贡献 4
1.1.4 Java的魔法:字节码 5
1.1.5 超越applet 6
1.1.6 更快速的发布时间表 7
1.1.7 Java的主要术语 8
1.2 面向对象程序设计 8
1.2.1 封装 9
1.2.2 多态性 9
1.2.3 继承 10
1.3 Java开发工具包 10
1.4 **个简单的程序 11
1.4.1 输入程序 12
1.4.2 编译程序 12
1.4.3 逐行分析**个程序 13
1.5 处理语法错误 15
1.6 第二个简单程序 15
1.7 另一种数据类型 17
1.8 两个控制语句 19
1.8.1 if语句 20
1.8.2 for循环语句 21
1.9 创建代码块 22
1.10 分号和定位 24
1.11 缩进原则 24
1.12 Java关键字 26
1.13 Java标识符 27
1.14 Java类库 27
1.15 自测题 27 第2章 数据类型与运算符 29
2.1 数据类型为什么重要 30
2.2 Java的基本类型 30
2.2.1 整数类型 31
2.2.2 浮点型 32
2.2.3 字符型 33
2.2.4 布尔类型 34
2.3 字面值 36
2.3.1 十六进制、八进制和二进制字面值 36
2.3.2 字符转义序列 37
2.3.3 字符串字面值 37
2.4 变量详解 38
2.4.1 初始化变量 38
2.4.2 动态初始化 39
2.5 变量的作用域和生命期 39
2.6 运算符 41
2.7 算术运算符 42
2.8 关系运算符和逻辑运算符 43
2.9 短路逻辑运算符 45
2.10 赋值运算符 46
2.11 速记赋值 46
2.12 赋值中的类型转换 48
2.13 不兼容类型的强制转换 49
2.14 运算符的优先级 50
2.15 表达式 52
2.15.1 表达式中的类型转换 52
2.15.2 间距和圆括号 54
2.16 自测题 54
第3章 程序控制语句 55
3.1 从键盘输入字符 56
3.2 if语句 57
3.2.1 嵌套if语句 58
3.2.2 if-else-if阶梯状结构 59
3.3 switch语句 60
3.4 for循环 66
3.4.1 for循环的一些变体 67
3.4.2 缺失部分要素的for循环 68
3.4.3 无限循环 69
3.4.4 没有循环体的循环 69
3.4.5 在for循环内部声明循环控制变量 70
3.4.6 增强型for循环 70
3.5 while循环 71
3.6 do-while循环 72
3.7 使用break语句退出循环 77
3.8 将break语句作为一种goto
语句使用 78
3.9 使用continue语句 82
3.10 嵌套循环 86
3.11 自测题 87
第4章 类、对象和方法 89
4.1 类的基础知识 90
4.1.1 类的基本形式 90
4.1.2 定义类 91
4.2 如何创建对象 94
4.3 引用变量和赋值 94
4.4 方法 95
4.5 从方法返回值 97
4.6 返回值 98
4.7 使用形参 100
4.8 构造函数 107
4.9 带形参的构造函数 109
4.10 深入介绍new运算符 110
4.11 垃圾回收 111
4.12 this关键字 111
4.13 自测题 113
第5章 其他数据类型与运算符 115
5.1 数组 116
5.2 多维数组 121
5.2.1 二维数组 121
5.2.2 不规则数组 122
5.2.3 三维或更多维的数组 123
5.2.4 初始化多维数组 123
5.3 另一种声明数组的语法 124
5.4 数组引用赋值 125
5.5 使用length成员 126
5.6 for-each形式的循环 131
5.6.1 迭代多维数组 134
5.6.2 应用增强型for循环 135
5.7 字符串 135
5.7.1 构造字符串 136
5.7.2 操作字符串 136
5.7.3 字符串数组 138
5.7.4 字符串是不可变的 139
5.7.5 使用String控制switch语句 140
5.8 使用命令行实参 142
5.9 使用局部变量的类型推断功能 143
5.9.1 引用类型的局部变量类型推断 145
5.9.2 在for循环中使用局部变量类型推断 146
5.9.3 var的一些限制 147
5.10 位运算符 147
5.10.1 位运算符的与、或、异或和非 148
5.10.2 移位运算符 151
5.10.3 位运算符的赋值速记符 153
5.11 ?运算符 156
5.12 自测题 157
第6章 方法和类详解 159
6.1 控制对类成员的访问 160
6.2 向方法传递对象 165
6.3 返回对象 168
6.4 方法重载 170
6.5 重载构造函数 175
6.6 递归 179
6.7 理解static关键字 181
6.8 嵌套类和内部类 187
6.9 varargs:可变长度的实参 190
6.9.1 varargs基础 190
6.9.2 重载varargs方法 193
6.9.3 varargs和歧义 194
6.10 自测题 195
第7章 继承 197
7.1 继承的基础知识 198
7.2 成员访问与继承 201
7.3 构造函数和继承 203
7.4 使用super调用超类构造函数 205
7.5 使用super访问超类成员 208
7.6 创建多级层次结构 212
7.7 何时执行构造函数 215
7.8 超类引用和子类对象 216
7.9 方法重写 220
7.10 重写的方法支持多态性 222
7.11 为何使用重写方法 224
7.12 使用抽象类 227
7.13 使用final 231
7.13.1 使用final防止重写 231
7.13.2 使用final防止继承 232
7.13.3 对数据成员使用final 232
7.14 Object类 233
7.15 自测题 234
第8章 包和接口 237
8.1 包 238
8.1.1 定义包 239
8.1.2 寻找包和CLASSPATH 239
8.1.3 一个简短的包示例 240
8.2 包和成员访问 241
8.3 理解被保护的成员 243
8.4 导入包 245
8.5 Java的类库位于包中 246
8.6 接口 247
8.7 实现接口 248
8.8 使用接口引用 251
8.9 接口中的变量 258
8.10 接口能够扩展 258
8.11 默认接口方法 259
8.11.1 默认方法的基础知识 260
8.11.2 默认方法的实际应用 261
8.11.3 多继承问题 262
8.12 在接口中使用静态方法 263
8.13 私有接口方法 264
8.14 有关包和接口的*后思考 265
8.15 自测题 265
第9章 异常处理 267
9.1 异常的层次结构 268
9.2 异常处理基础 269
9.2.1 使用关键字try和catch 269
9.2.2 一个简单的异常示例 270
9.3 未捕获异常的后果 272
9.4 使用多个catch语句 274
9.5 捕获子类异常 275
9.6 try代码块可以嵌套 276
9.7 抛出异常 277
9.8 Throwable详解 279
9.9 使用finally 280
9.10 使用throws语句 282
9.11 另外3种异常功能 283
9.12 Java的内置异常 284
9.13 创建异常子类 286
9.14 自测题 291
第10章 使用I/O 293
10.1 基于流的Java I/O 294
10.2 字节流和字符流 294
10.3 字节流类 295
10.4 字符流类 295
10.5 预定义流 296
10.6 使用字节流 296
10.6.1 读取控制台输入 297
10.6.2 写入控制台输出 298
10.7 使用字节流读写文件 299
10.7.1 从文件输入 299
10.7.2 写入文件 303
10.8 自动关闭文件 304
10.9 读写二进制数据 307
10.10 随机访问文件 311
10.11 使用Java字符流 313
10.11.1 使用字符流的控制台输入 314
10.11.2 使用字符流的控制台输出 317
10.12 使用字符流的文件I/O 318
10.12.1 使用FileWriter 318
10.12.2 使用FileReader 319
10.13 使用Java的类型封装器转换数值字符串 320
10.14 自测题 328
第11章 多线程程序设计 331
11.1 多线程的基础知识 332
11.2 Thread类和Runnable接口 333
11.3 创建一个线程 333
11.4 创建多个线程 342
11.5 确定线程何时结束 345
11.6 线程的优先级 348
11.7 同步 350
11.8 使用同步方法 351
11.9 同步语句 354
11.10 使用notify( )、wait( )和notifyAll( )的线程通信 356
11.11 线程的挂起、继续执行和停止 361
11.12 自测题 366
第12章 枚举、自动装箱、注解和其他特性 367
12.1 枚举 368
12.2 Java语言中的枚举是类类型 370
12.3 values( )和valueOf( )方法 371
12.4 构造函数、方法、实例变量和枚举 372
12.5 枚举继承enum 374
12.6 自动装箱 380
12.7 类型封装器 380
12.8 自动装箱的基础知识 382
12.9 自动装箱和方法 383
12.10 发生在表达式中的自动装箱/
自动拆箱 384
12.11 静态导入 386
12.12 注解(元数据) 388
12.13 instanceof运算符 390
12.14 自测题 392
第13章 泛型 395
13.1 泛型的基础知识 396
13.2 简单的泛型示例 397
13.2.1 泛型只能用于引用类型 400
13.2.2 泛型类型根据其类型参数而不同 400
13.2.3 带有两个类型形参的泛型类 400
13.2.4 泛型类的一般形式 402
13.3 受限类型 402
13.4 使用通配符实参 405
13.5 受限通配符 408
13.6 泛型方法 410
13.7 泛型构造函数 412
13.8 泛型接口 413
13.9 原类型和遗留代码 419
13.10 使用菱形运算符进行类型推断 421
13.11 局部变量类型推断和泛型 422
13.12 擦除特性 423
13.13 歧义错误 423
13.14 一些泛型限制 424
13.14.1 类型形参不能被实例化 424
13.14.2 对静态成员的限制 424
13.14.3 泛型数组限制 425
13.14.4 泛型异常限制 426
13.15 继续学习泛型 426
13.16 自测题 426
第14章 lambda表达式和方法引用 429
14.1 lambda表达式简介 430
14.1.1 lambda表达式的基础知识 431
14.1.2 函数式接口 432
14.1.3 几个lambda表达式示例 433
14.2 块lambda表达式 438
14.3 泛型函数式接口 439
14.4 lambda表达式和变量捕获 444
14.5 从 lambda表达式中抛出异常 446
14.6 方法引用 447
14.6.1 静态方法的方法引用 447
14.6.2 实例方法的方法引用 449
14.7 构造函数引用 452
14.8 预定义的函数式接口 455
14.9 自测题 456
第15章 模块 459
15.1 模块基础 460
15.1.1 简单的模块示例 461
15.1.2 编译、运行**个模块示例 465
15.1.3 详述requires和exports 466
15.2 java.base和平台模块 466
15.3 旧代码和未命名的模块 467
15.4 导出到特定的模块 468
15.5 使用requires transitive 469
15.6 使用服务 473
15.6.1 服务和服务提供程序的基础知识 473
15.6.2 基于服务的关键字 474
15.6.3 基于模块的服务示例 474
15.7 其他模块功能 480
15.7.1 open模块 480
15.7.2 opens语句 481
15.7.3 requires static 481
15.8 继续学习模块 481
15.9 自测题 482
第16章 switch表达式、记录以及其他新近添加的特性 483
16.1 switch的增强 484
16.1.2 switch表达式和yield语句简介 486
16.1.3 case语句中的箭头 488
16.1.4 深入介绍箭头case 489
16.2 记录 495
16.2.1 记录的基础知识 495
16.2.2 创建记录构造函数 497
16.2.3 深入介绍记录的getter方法 501
16.3 instanceof的模式匹配 502
16.4 密封类和密封接口 503
16.4.1 密封类 504
16.4.2 密封接口 506
16.5 未来的发展方向 507
16.6 自测题 507
第17章 Swing介绍 509
17.1 Swing的起源和设计原则 510
17.2 组件和容器 512
17.2.1 组件 512
17.2.2 容器 513
17.2.3 顶级容器窗格 513
17.3 布局管理器 513
17.4 **个简单的Swing程序 514
17.5 Swing事件处理 518
17.5.1 事件 518
17.5.2 事件源 519
17.5.3 事件监听器 519
17.5.4 事件类和监听器接口 519
17.6 使用JButton 520
17.7 使用JTextField 523
17.8 创建JCheckBox 526
17.9 使用JList 529
17.10 使用匿名内部类或lambda表达式来处理事件 538
17.11 自测题 539
—以下内容通过扫描封底二维码获取—
附录A 自测题答案 541
附录B 使用Java的文档注释 579
附录C 编译和运行简单的单文件程序 589
附录D JShell简介 591
附录E 更多Java关键字 601
作者简介
Herbert Schildt是一位畅销书作家,在30多年的时间里,他撰写了大量编程图书。Herbert是Java语言领域的权威专家,被International Developer杂志评为“全球*著名的编程书籍创作者之一”“。他撰写的编程书籍在全球范围内销售了数百万册,已被翻译成所有主要的非英语语言。他撰写了大量Java方面的书籍,包括Java: The Complete Reference、Herb Schildt’s Java Programming Cookbook、Introducing JavaFX 8 Programming和 Swing: A Beginner’s Guide。还撰写了许多关于C、C 和C#的图书。Ed Burns在Secrets of the Rock Star Programmers: Riding the IT Crest一书中将Herbert列为明星程序员。尽管对计算机的所有方面都感兴趣,但Herbert主要关注计算机语言。Herbert拥有伊利诺伊大学的学士和硕士学位。
-
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
机器学习
¥59.4¥108.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
深度学习的数学
¥40.7¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥35.8¥65.0 -
DIRECTX 12 3D 游戏开发实战
¥81.4¥148.0 -
元启发式算法与背包问题研究
¥35.8¥49.0 -
格拉斯曼流行学习及其在图像集分类中的应用
¥13.7¥28.0 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
十二字节
¥41.4¥69.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
Linux操作系统
¥41.9¥59.8 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
基于3D打印技术的产品创新设计方法
¥45.8¥88.0 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0 -
鸿蒙APP案例开发实战——学习服务与工具助手30例
¥55.3¥79.0 -
贝叶斯推理与机器学习
¥139.3¥199.0