描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302547853
2018年9月25日,Java 11(18.9 LTS)正式发布,支持期限至2026年9月。 JDK 11 更新了五大特性:
(1) 变量类型推断。通过定义局部变量var,自动根据右边的表达式推断变量类型。在开发流程中提供了一定的便捷性。
(2) 扩展字符串特性功能方法。在处理字符串的问题上会更加方便、规范。
(3) 扩展集合特性功能方法。集合(List/ Set/ Map)都添加了 of 和 copyOf 方法,成为不可变集合。之所以是不可变集合,是因为使用of 和copyOf 创建的集合不能进行增、删、改、排序等操作,不然系统会抛出异常。
(4) 更加简洁的编译和运行。只需要一个命令,全部搞定。
(5) HTTP Client API。其实HTTP Client API 早在Java 9 的时候就引入了,在Java 10 中不断优化更新,*终在Java 11 中正式发布。该API 用来在Java 程序中作为客户端请求HTTP 服务,Java 中服务端HTTP 的支持由servlet
实现。HTTP Client API 对大多数场景提供简单易用的阻塞模型,通过异步机制支持事件通知,完整支持HTTP协议的特性,支持建立WebSocket 握手,支持HTTP/2(包括协议升级和服务端推送),支持 HTTPS/TLS。和现有的其他实现类库相比,性能相当或有提升,内存占用少。
Java 并不是*容易入手的开发语言,根据这个特性,《Java 11官方参考手册(第11版)》精心编排,优先讲解Java 语言的基础知识,再讲解Java 的各种库,*后介绍Java 的GUI 编程和应用,以求用*易懂的方式、*精简的语句、*充实的内容向读者介绍Java。这些丰富的内容包含了Java 语言基础语法以及高级特性,适合各个层次的Java 程序员阅读,也是高等院校讲授面向对象程序设计语言以及Java 语言的绝佳教材和参考书。
《Java 11官方参考手册(第11版)》针对Java SE 11做了全面更新,介绍如何开发、编译、调试和运行Java程序。本书由畅销书作者Herbert Schildt撰写,涵盖Java语言的方方面面,包括Java的语法、关键字、基本编程原则。此外,本书还介绍Java API库的关键元素(如I/O、集合框架、流库和并发实用工具等),分析Swing、Java Bean和servlet,并通过大量真实案例演示Java语言在编程中的实际应用,深入讲解极其重要的模块系统,并在*后介绍Java的交互式编程工具——JShell。*重要的是,本书讲解清晰,简明扼要;Herbert的这种写作风格使其著作备受全球数百万读者的青睐。
主要内容
● 数据类型、变量、数组和运算符
● 控制语句
● 类、对象和方法
● 方法重载和重写
● 继承
● 局部变量类型推断
● 包和接口
● 异常处理
● 多线程编程
● 枚举、自动装箱和注解
● I/O类
● 泛型
● lambda表达式
● 模块
● 字符串处理
● 集合框架
● 联网
● 事件处理
● 并发API
● 流API
● 正则表达式
● AWT和Swing
● Java Bean
● servlet
目 录
第Ⅰ部分 Java语言
第 1 章 Java的历史和演变 3
1.1 Java的家世 3
1.1.1 现代编程语言的诞生:C语言 3
1.1.2 C :下一个阶段 4
1.1.3 Java出现的时机已经成熟 5
1.2 Java的诞生 5
1.3 Java改变Internet的方式 6
1.3.1 Java applet 6
1.3.2 安全性 7
1.3.3 可移植性 7
1.4 Java的魔力:字节码 7
1.5 超越applet 8
1.6 更快的发布周期 8
1.7 servlet:服务器端的Java 9
1.8 Java的关键特性 9
1.8.1 简单性 9
1.8.2 面向对象 10
1.8.3 健壮性 10
1.8.4 多线程 10
1.8.5 体系结构中立 10
1.8.6 解释执行和高性能 10
1.8.7 分布式 11
1.8.8 动态性 11
1.9 Java的演变历程 11
1.10 文化革新 14
第2 章 Java综述 15
2.1 面向对象编程 15
2.1.1 两种范式 15
2.1.2 抽象 15
2.1.3 OOP三原则 16
2.2 第一个简单程序 19
2.2.1 输入程序 19
2.2.2 编译程序 20
2.2.3 深入分析第一个示例程序 20
2.3 第二个简短程序 22
2.4 两种控制语句 23
2.4.1 if语句 23
2.4.2 for循环 24
2.5 使用代码块 25
2.6 词汇问题 27
2.6.1 空白符 27
2.6.2 标识符 27
2.6.3 字面值 27
2.6.4 注释 27
2.6.5 分隔符 27
2.6.6 Java关键字 28
2.7 Java类库 29
第3 章 数据类型、变量和数组 30
3.1 Java是强类型化的语言 30
3.2 基本类型 30
3.3 整型 31
3.3.1 byte 31
3.3.2 short 31
3.3.3 int 31
3.3.4 long 32
3.4 浮点型 32
3.4.1 float 32
3.4.2 double 33
3.5 字符型 33
3.6 布尔型 34
3.7 深入分析字面值 35
3.7.1 整型字面值 35
3.7.2 浮点型字面值 36
3.7.3 布尔型字面值 36
3.7.4 字符型字面值 36
3.7.5 字符串字面值 37
3.8 变量 37
3.8.1 变量的声明 37
3.8.2 动态初始化 38
3.8.3 变量的作用域和生存期 38
3.9 类型转换和强制类型转换 40
3.9.1 Java的自动类型转换 40
3.9.2 强制转换不兼容的类型 41
3.10 表达式中的自动类型提升 42
3.11 数组 43
3.11.1 一维数组 43
3.11.2 多维数组 45
3.11.3 另一种数组声明语法 48
3.12 局部变量的类型推断 49
3.13 关于字符串的一些说明 51
第4章 运算符 52
4.1 算术运算符 52
4.1.1 基本算术运算符 52
4.1.2 求模运算符 53
4.1.3 算术与赋值复合运算符 54
4.1.4 自增与自减运算符 55
4.2 位运算符 56
4.2.1 位逻辑运算符 57
4.2.2 左移 59
4.2.3 右移 60
4.2.4 无符号右移 61
4.2.5 位运算符与赋值的组合 62
4.3 关系运算符 63
4.4 布尔逻辑运算符 64
4.5 赋值运算符 65
4.6 “?”运算符 66
4.7 运算符的优先级 66
4.8 使用圆括号 67
第 5 章 控制语句 68
5.1 Java的选择语句 68
5.1.1 if语句 68
5.1.2 switch语句 70
5.2 迭代语句 74
5.2.1 while语句 75
5.2.2 do-while语句 76
5.2.3 for语句 78
5.2.4 for循环的for-each版本 81
5.2.5 for循环中的局部变量类型推断 85
5.2.6 嵌套的循环 86
5.3 跳转语句 86
5.3.1 使用break语句 87
5.3.2 使用continue语句 90
5.3.3 return语句 91
第 6 章 类 92
6.1 类的基础知识 92
6.1.1 类的一般形式 92
6.1.2 一个简单的类 93
6.2 声明对象 95
6.3 为对象引用变量赋值 96
6.4 方法 97
6.4.1 为Box类添加方法 97
6.4.2 返回值 99
6.4.3 添加带参数的方法 100
6.5 构造函数 102
6.6 this关键字 104
6.7 垃圾回收 105
6.8 堆栈类 105
第 7 章 方法和类的深入分析 108
7.1 重载方法 108
7.2 将对象用作参数 112
7.3 实参传递的深入分析 114
7.4 返回对象 116
7.5 递归 116
7.6 访问控制 118
7.7 理解static 121
7.8 final介绍 123
7.9 重新审视数组 123
7.10 嵌套类和内部类 125
7.11 String类 127
7.12 使用命令行参数 129
7.13 varargs:可变长度实参 129
7.13.1 重载varargs方法 132
7.13.2 varargs方法与模糊性 133
第 8 章 继承 136
8.1 继承的基础知识 136
8.1.1 成员访问与继承 137
8.1.2 一个更实际的例子 138
8.1.3 超类变量可以引用子类对象 140
8.2 使用super关键字 141
8.2.1 使用super调用超类的构造函数 141
8.2.2 super的另一种用法 144
8.3 创建多级继承层次 145
8.4 构造函数的执行时机 148
8.5 方法重写 149
8.6 动态方法调度 151
8.6.1 重写方法的目的 152
8.6.2 应用方法重写 152
8.7 使用抽象类 154
8.8 在继承中使用final关键字 156
8.8.1 使用final关键字阻止重写 156
8.8.2 使用final关键字阻止继承 156
8.9 局部变量类型推断和继承 157
8.10 Object类 158
第9章 包和接口 160
9.1 包 160
9.1.1 定义包 160
9.1.2 包查找与CLASSPATH 161
9.1.3 一个简短的包示例 161
9.2 包和成员访问 162
9.3 导入包 166
9.4 接口 167
9.4.1 定义接口 168
9.4.2 实现接口 168
9.4.3 嵌套接口 170
9.4.4 应用接口 171
9.4.5 接口中的变量 174
9.4.6 接口可以扩展 176
9.5 默认接口方法 176
9.5.1 默认方法基础知识 177
9.5.2 一个更实用的例子 178
9.5.3 多级继承的问题 179
9.6 在接口中使用静态方法 179
9.7 私有接口方法 180
9.8 关于包和接口的最后说明 181
第 10 章 异常处理 182
10.1 异常处理的基础知识 182
10.2 异常类型 183
10.3 未捕获的异常 183
10.4 使用try和catch 184
10.5 多条catch子句 186
10.6 嵌套的try语句 187
10.7 throw 189
10.8 throws 190
10.9 finally 191
10.10 Java的内置异常 192
10.11 创建自己的异常子类 193
10.12 链式异常 195
10.13 其他三个异常特性 196
10.14 使用异常 197
第11章 多线程编程 198
11.1 Java线程模型 198
11.1.1 线程优先级 199
11.1.2 同步 200
11.1.3 消息传递 200
11.1.4 Thread类和Runnable接口 200
11.2 主线程 201
11.3 创建线程 202
11.3.1 实现Runnable接口 202
11.3.2 扩展Thread类 204
11.3.3 选择一种创建方式 205
11.4 创建多个线程 205
11.5 使用isAlive()和join()方法 206
11.6 线程优先级 209
11.7 同步 209
11.7.1 使用同步方法 209
11.7.2 synchronized语句 211
11.8 线程间通信 213
11.9 挂起、恢复与停止线程 218
11.10 获取线程的状态 221
11.11 使用工厂方法创建和启动线程 222
11.12 使用多线程 222
第 12 章 枚举、自动装箱与注解 223
12.1 枚举 223
12.2 类型封装器 231
12.3 自动装箱 233
12.4 注解 237
12.5 类型注解 248
12.6 重复注解 252
12.7 一些限制 253
第 13 章 I/O、带资源的try语句以及其他主题 254
13.1 I/O的基础知识 254
13.2 读取控制台输入 257
13.3 向控制台写输出 259
13.4 PrintWriter类 260
13.5 读/写文件 260
13.6 自动关闭文件 266
13.7 transient和volatile修饰符 268
13.8 使用instanceof运算符 269
13.9 strictfp 271
13.10 本地方法 271
13.11 使用assert 271
13.12 静态导入 274
13.13 通过this()调用重载的构造函数 276
13.14 紧凑API配置文件 277
第14章 泛型 278
14.1 什么是泛型 278
14.2 一个简单的泛型示例 279
14.3 带两个类型参数的泛型类 284
14.4 泛型类的一般形式 285
14.5 有界类型 285
14.6 使用通配符参数 288
14.7 创建泛型方法 294
14.8 泛型接口 296
14.9 原始类型与遗留代码 298
14.10 泛型类层次 300
14.11 泛型的类型推断 307
14.12 局部变量类型推断和泛型 308
14.13 擦除 308
14.14 模糊性错误 310
14.15 使用泛型的一些限制 311
第15 章 lambda表达式 313
15.1 lambda表达式简介 313
15.2 块lambda表达式 318
15.3 泛型函数式接口 319
15.4 作为参数传递lambda表达式 321
15.5 lambda表达式与异常 323
15.6 lambda表达式和变量捕获 324
15.7 方法引用 325
15.8 构造函数引用 332
15.9 预定义的函数式接口 336
第 16 章 模块 337
16.1 模块基础知识 337
16.2 java.base和平台模块 342
16.3 旧代码和未命名的模块 343
16.4 导出到特定的模块 343
16.5 使用requires transitive 344
16.6 使用服务 348
16.7 模块图 354
16.8 三个特殊的模块特性 355
16.9 jlink工具和模块JAR文件介绍 356
16.10 层与自动模块简述 357
16.11 小结 357
第Ⅱ部分 Java库
第17章 字符串处理 361
17.1 String类的构造函数 361
17.2 字符串的长度 363
17.3 特殊的字符串操作 363
17.4 提取字符 366
17.5 比较字符串 367
17.6 查找字符串 370
17.7 修改字符串 372
17.8 使用valueOf()转换数据 374
17.9 改变字符串中字符的大小写 375
17.10 连接字符串 375
17.11 其他String方法 376
17.12 StringBuffer类 377
17.13 StringBuilder类 382
第18章 探究java.lang 383
18.1 基本类型封装器 384
18.1.1 Number 384
18.2 Void类 399
18.3 Process类 399
18.4 Runtime类 400
18.5 Runtime.Version 403
18.6 ProcessBuilder类 404
18.7 System类 406
18.8 System.Logger和System.LoggerFinder 409
18.9 Object类 409
18.10 使用clone()方法和Cloneable接口 410
18.11 Class类 411
18.12 ClassLoader类 414
18.13 Math类 414
18.14 StrictMath类 418
18.15 Compiler类 418
18.16 Thread类、ThreadGroup类和Runnable接口 418
18.17 ThreadLocal和InheritableThreadLocal类 424
18.18 Package类 424
18.19 Module类 426
18.20 ModuleLayer类 426
18.21 RuntimePermission类 426
18.22 Throwable类 426
18.23 SecurityManager类 426
18.24 StackTraceElement类 427
18.25 StackWalker类和StackWalker.StackFrame接口 427
18.26 Enum类 427
18.27 ClassValue类 428
18.28 CharSequence接口 428
18.29 Comparable接口 429
18.30 Appendable接口 429
18.31 Iterable接口 429
18.32 Readable接口 430
18.33 AutoCloseable接口 430
18.34 Thread.UncaughtExceptionHandler接口 430
18.35 java.lang子包 430
第19章 java.util第1部分:集合框架 432
19.1 集合概述 433
19.2 集合接口 434
19.3 集合类 441
19.4 通过迭代器访问集合 451
19.5 Spliterator 454
19.6 在集合中存储用户定义的类 456
19.7 RandomAccess接口 457
19.8 使用映射 458
19.9 比较器 467
19.10 集合算法 474
19.11 Arrays类 479
19.12 遗留的类和接口 483
19.13 集合小结 497
第20章 java.util第2部分:更多实用工具类 498
20.1 StringTokenizer类 498
20.2 BitSet类 499
20.3 Optional、OptionalDouble、OptionalInt和OptionalLong 502
20.4 Date类 504
20.5 Calendar类 505
20.6 GregorianCalendar类 508
20.7 TimeZone类 509
20.8 SimpleTimeZone类 510
20.9 Locale类 511
20.10 Random类 512
20.11 Timer和TimerTask类 514
20.12 Currency类 516
20.13 Formatter类 516
20.14 Scanner类 529
20.15 ResourceBundle、ListResourceBundle和PropertyResourceBundle类 538
20.16 其他实用工具类和接口 541
20.17 java.util子包 542
第21章 输入/输出:探究java.io 546
21.1 I/O类和接口 546
21.2 File类 547
21.3 AutoCloseable、Closeable和
Flushable接口 552
21.4 I/O异常 552
21.5 关闭流的两种方式 553
21.6 流类 554
21.7 字节流 554
21.8 字符流 571
21.9 Console类 580
21.10 串行化 581
21.11 流的优点 586
第22章 探究NIO 587
22.1 NIO类 587
22.2 NIO的基础知识 587
22.3 NIO.2对NIO的增强 590
FileStore类 595
22.4 使用NIO系统 595
第23章 联网 613
23.1 联网的基础知识 613
23.2 java.net联网类和接口 614
23.3 InetAddress类 615
23.4 Inet4Address类和Inet6Address类 616
23.5 TCP/IP客户端套接字 616
23.6 URL类 619
23.7 URLConnection类 620
23.8 HttpURLConnection类 622
23.9 URI类 624
23.10 cookie 624
23.11 TCP/IP服务器套接字 624
23.12 数据报 624
23.13 java.net.http包 627
第24章 事件处理 632
24.1 两种事件处理机制 632
24.2 委托事件模型 632
24.3 事件类 634
24.4 KeyEvent类 639
24.5 事件源 643
24.6 事件监听器接口 643
24.7 使用委托事件模型 646
24.8 适配器类 652
24.9 内部类 654
第25章 AWT介绍:使用窗口、图形和文本 658
25.1 AWT类 658
25.2 窗口基本元素 660
25.3 使用框架窗口 661
25.4 使用图形 665
25.5 使用颜色 669
25.6 设置绘图模式 671
25.7 使用字体 673
25.8 使用FontMetrics管理文本输出 678
第26章 使用AWT控件、布局管理器和菜单 681
26.1 AWT控件的基础知识 681
26.1.1 添加和移除控件 682
26.1.2 响应控件 682
26.1.3 HeadlessException异常 682
26.2 使用标签 682
26.3 使用命令按钮 684
26.4 使用复选框 687
26.5 使用复选框组 689
26.6 使用下拉列表 691
26.7 使用列表框 693
26.8 管理滚动条 696
26.9 使用TextField 699
26.10 使用TextArea 701
26.11 理解布局管理器 703
26.12 菜单栏和菜单 715
26.13 对话框 719
26.14 关于重写paint()方法 723
第27章 图像 724
27.1 文件格式 724
27.2 图像基础知识:创建、加载与显示 724
27.3 双缓冲 726
27.4 ImageProducer接口 729
27.5 ImageConsumer接口 731
27.6 ImageFilter类 733
27.7 其他图像类 745
第28章 并发实用工具 746
28.1 并发API包 747
28.2 使用同步对象 748
28.3 使用执行器 764
28.4 TimeUnit枚举 769
28.5 并发集合 770
28.6 锁 771
28.7 原子操作 773
28.8 通过Fork/Join框架进行并行编程 774
28.9 并发实用工具与Java传统方式的比较 787
第29章 流API 788
29.1 流的基础知识 788
29.2 缩减操作 793
29.3 使用并行流 795
29.4 映射 797
29.5 收集 800
29.6 迭代器和流 803
29.7 流API中更多值得探究的地方 807
第30章 正则表达式和其他包 808
30.1 正则表达式处理 808
30.2 反射 815
30.3 远程方法调用 818
30.4 使用java.text格式化日期和时间 821
30.5 java.time的时间和日期API 824
第Ⅲ部分 使用Swing进行GUI编程
第 31 章 Swing简介 833
31.1 Swing的起源 833
31.2 Swing的构建以AWT为基础 834
31.3 两个关键的Swing特性 834
31.4 MVC连接 834
31.5 组件与容器 835
31.6 Swing包 836
31.7 一个简单的Swing应用程序 837
31.8 事件处理 840
31.9 在Swing中绘图 843
第32章 探索Swing 847
32.1 JLabel与ImageIcon 847
32.2 JTextField 849
32.3 Swing按钮 850
32.4 JTabbedPane 858
32.5 JScrollPane 860
32.6 JList 862
32.7 JComboBox 864
32.8 树 866
32.9 JTable 869
第33章 Swing菜单简介 872
33.1 菜单的基础知识 872
33.2 JMenuBar、JMenu和JMenuItem
33.3 创建主菜单 875
33.4 向菜单项添加助记符和加速键 879
33.5 向菜单项添加图片和工具提示 881
33.6 使用JRadioButtonMenuItem和
JCheckBoxMenuItem 881
33.7 创建弹出菜单 883
33.8 创建工具栏 886
33.9 使用动作 888
33.10 完整演示MenuDemo程序 892
33.11 继续探究Swing 898
第Ⅳ部分 应用Java
第 34 章 Java Bean 901
34.1 Java Bean是什么 901
34.2 Java Bean的优势 901
34.3 内省 902
34.5 持久性 904
34.6 定制器 904
34.7 Java Bean API 905
34.8 一个Bean示例 906
第35章 servlet 910
35.1 背景 910
35.2 servlet的生命周期 910
35.3 servlet开发选项 911
35.4 使用Tomcat 911
35.5 一个简单的servlet 912
35.6 Servlet API 914
35.7 javax.servlet包 914
35.8 读取servlet参数 917
35.9 javax.servlet.http包 918
35.9.1 HttpServletRequest接口 919
35.9.2 HttpServletResponse接口 920
35.9.3 HttpSession接口 920
35.9.4 Cookie类 921
35.9.5 HttpServlet类 922
35.10 处理HTTP请求和响应 923
35.11 使用cookie 925
35.12 会话跟踪 927
第Ⅴ部分 附录
附录A 使用Java的文档注释 931
附录B JShell简介 938
附录C 在一个步骤中编译和运行简单的单文件程序 946
前 言
Java是当今世界最重要,也是使用最广泛的计算机语言之一。而且,在多年之前它就已经拥有这一荣誉。与其他一些计算机语言随着时间的流逝影响也逐渐减弱不同,Java随着时间的推移反而变得更加强大。从首次发布开始,Java就跃到了Internet编程的前沿。后续的每一个版本都进一步巩固了这一地位。如今,Java依然是开发Web应用的最佳选择。Java是一门功能强大且通用的编程语言,适合于多种目的的开发。简言之,在现实世界中,很多应用都是使用Java开发的,掌握Java语言非常重要。
Java成功的一个关键原因在于它的敏捷性。自从最初的Java 1.0版发布以来,Java不断地进行完善以适应编程环境和开发人员编程方式的变化。最重要的是,Java不仅是在跟随潮流,更是在帮助创造潮流。Java能够适应计算机世界快速变化的能力,是它一直成功并且仍将成功的关键因素。
《Java官方参考手册》自从1996年首次出版以来,已经经历了数次改版,每次改版都反映了Java的不断演化进程。《Java 11官方参考手册(第11版)》已经针对Java SE 11(JDK 11)进行了升级。因此,《Java 11官方参考手册(第11版)》的这个版本包含了大量的新材料、更新和更改。特别令人感兴趣的是讨论自《Java 11官方参考手册(第11版)》上一版以来添加到Java中的两个关键特性。第一个是局部变量类型推断,因为它简化了某些类型的局部变量声明。为了支持局部变量类型推断,在语言中添加了上下文敏感的保留类型名称var。第二个关键的Java新特性是从JDK 10开始,对版本号进行重新处理,以反映预期更快的发布周期。如第1章所述,Java特性现在预计每六个月发布一次。这一点很重要,因为现在可以用比过去更快的速度向Java添加新特性。
虽然在《Java 11官方参考手册(第11版)》的前一版中已经介绍了,但是最近添加的两个Java特性仍然对Java程序员产生了很大影响。第一个新增特性是模块(module),通过该特性可以指定应用程序中代码间的关系和依赖性。JDK 9增加的模块代表对Java语言最具深远意义的更改之一,例如它添加了10个与上下文相关的关键字。模块还对Java API库产生了巨大影响,因为包现在组织到模块中。另外,为了支持模块,新增了一些工具,对现有的工具也进行了更新,还定义了新的文件格式。由于模块是一个非常重要的新特性,因此《Java 11官方参考手册(第11版)》的第16章专门对其进行了讲解。
第二个新增的特性是JShell,该工具提供了一个交互式环境,开发人员不需要编写完整的程序就可以方便地在其中体验代码片段。不管是初学者还是有经验的编程人员都将发现该工具非常有用。《Java 11官方参考手册(第11版)》的附录B对该工具进行了介绍。
一本适合所有编程人员的书
《Java 11官方参考手册(第11版)》面向所有开发人员,不管是初学者还是有经验的编程人员。初学者将从《Java 11官方参考手册(第11版)》中发现每个主题的详细讨论,以及许多特别有帮助的例子。而对Java更高级特性和库的深入讨论,将会吸引有经验的编程人员。无论是对于初学者还是有经验的编程人员,《Java 11官方参考手册(第11版)》都提供了持久的资源和方便实用的参考。
《Java 11官方参考手册(第11版)》内容
《Java 11官方参考手册(第11版)》是对Java语言的全面指导,描述了它的语法、关键字以及基本的编程原则,还介绍了Java API库的重要部分。《Java 11官方参考手册(第11版)》分为4部分,每部分关注Java开发环境的不同方面。
第Ⅰ部分是对Java语言的深入阐述。该部分从基础知识开始讲解,包括数据类型、运算符、控制语句以及类等。然后介绍继承、包、接口、异常处理以及多线程,还介绍注解、枚举、自动装箱、泛型、I/O以及lambda表达式等内容。该部分最后一章阐述了模块。
第Ⅱ部分介绍Java的标准API库的关键内容。该部分的主题包括字符串、I/O、网络、标准实用工具、集合框架、AWT、事件处理、图像、并发编程(包括Fork/Join框架)、正则表达式和流库。
第Ⅲ部分用三章内容介绍Swing。
第IV部分包含两章,这两章展示了Java的实际应用。该部分首先介绍Java Bean,然后介绍servlet。
致 谢
在此我要特别感谢Patrick Naughton,Joe O’Neil和Danny Coward。
Patrick Naughton是Java语言的创立者之一,他还参与编写了《Java 11官方参考手册(第11版)》的第1版。《Java 11官方参考手册(第11版)》第21、23和27章的大部分材料最初都是由Patrick提供的。他的洞察力、专业知识和活力都对《Java 11官方参考手册(第11版)》的成功付梓贡献极大。
在准备《Java 11官方参考手册(第11版)》的第2版和第3版的过程中,Joe O’Neil提供了原始素材,这些素材呈现在《Java 11官方参考手册(第11版)》的第30、32、34和35章中。Joe对我的数《Java 11官方参考手册(第11版)》都有帮助,并且他提供的帮助一直都是最高质量的。
Danny Coward是《Java 11官方参考手册(第11版)》第11版的技术编辑。Danny对我的数《Java 11官方参考手册(第11版)》都有贡献,他的忠告、洞察力和建议都有巨大价值,对此表示感谢。
如何进一步学习
《Java 11官方参考手册(第11版)》为读者开启了Herbert Schildt Java编程图书系列的大门。下面是其他一些你可能感兴趣的图书:
Herb Schildt’s Java Programming Cookbook
Java:A Beginner’s Guide
Introducing JavaFX 8 Programming
Swing: A Beginner’s Guide
The Art of Java
评论
还没有评论。