Java 11官方参考手册
- ISBN:9787302547853
- 装帧:平装
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:945
- 出版时间:2020-03-01
- 条形码:9787302547853 ; 978-7-302-54785-3
本书特色
《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
内容简介
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语言
第 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
作者简介
Herbert Schildt是一位畅销书作家,在近30年的时间里,他撰写了大量关于编程的图书。Herbert是Java语言领域的权威专家。他撰写的编程书籍在世界范围内销售了数百万册,并且已经被翻译成所有主要的非英语语言。他撰写了大量Java方面的书籍,包括《Java 9编程参考官方大全(第10版)》、Herb Schildt’s Java Programming Cookbook、Introducing JavaFX 8 Programming和Swing:A Beginner’s Guide,还撰写了许多关于C、C 和C#的图书。尽管对计算机的所有方面都感兴趣,但是他主要关注计算机语言。Herbert获得了美国伊利诺伊大学的学士和硕士学位。他的个人网站是www.HerbSchildt.com。
-
全图解零基础word excel ppt 应用教程
¥16.3¥48.0 -
C Primer Plus 第6版 中文版
¥62.6¥108.0 -
零信任网络:在不可信网络中构建安全系统
¥34.2¥59.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
情感计算
¥66.8¥89.0 -
大模型RAG实战 RAG原理、应用与系统构建
¥74.3¥99.0 -
大学计算机基础实验教程(MS Office版)——面向数据分析能力培养
¥29.1¥39.8 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥51.8¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥70.0¥89.8 -
LINUX实战——从入门到精通
¥52.4¥69.0 -
剪映AI
¥52.8¥88.0 -
快速部署大模型:LLM策略与实践(基于ChatGPT等大语言模型)
¥56.9¥79.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
数据存储架构与技术(第2版)
¥62.9¥89.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
Java面向对象程序设计基础教程
¥35.9¥59.8 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0