《Java JDK 9学习笔记》是创作者很多年来课堂教学实践活动经验的小结,汇聚了学生在学习培训Java或验证考题时碰到的定义、实际操作、运用等难题及解决方法。《JavaJDK9学习笔记》对于JavaSE9新作用全方位重做,不论是章节目录构架或案例编程代码,都干了再次撰写与全方位翻修,并详解了Java9的模块化设计,JVM、JRE、JavaSEAPI、JDK与IDE中间的对比关联。必需时可从JavaSEAPI的源码解析,掌握各种各样英语的语法在JavaSEAPI中怎样运用。针对提议训练的案例出示了Lab文本文档,以突显训练重中之重。除此之外,《JavaJDK9学习笔记》还将IDE实际操作列为课程内容之一,让阅读者能与实践活动紧密结合,轻轻松松迅速把握Java程序编写方法。《JavaJDK9学习笔记》合适Java的初、初级阅读者及其众多Java运用开发者阅读文章。
《JavaJDK9学习笔记》是创作者很多年来课堂教学实践活动经验的小结,汇聚了学生在学习培训Java或验证考题时碰到的定义、实际操作、运用等难题及解决方法。《JavaJDK9学习笔记》对于JavaSE9新作用全方位重做,不论是章节目录构架或案例编程代码,都干了再次撰写与全方位翻修,并详解了Java9的模块化设计,JVM、JRE、JavaSEAPI、JDK与IDE中间的对比关联。必需时可从JavaSEAPI的源码解析,掌握各种各样英语的语法在JavaSEAPI中怎样运用。针对提议训练的案例出示了Lab文本文档,以突显训练重中之重。除此之外,《JavaJDK9学习笔记》还将IDE实际操作列为课程内容之一,让阅读者能与实践活动紧密结合,轻轻松松迅速把握Java程序编写方法。《JavaJDK9学习笔记》合适Java的初、初级阅读者及其众多Java运用开发者阅读文章。
目录
- Chapter 1 Java平台概论 1
- 1.1 Java不只是语言 2
- 1.1.1 前世今生 2
- 1.1.2 三大平台 5
- 1.1.3 JCP与JSR 6
- 1.1.4 Oracle JDK与OpenJDK 7
- 1.1.5 建议的学习路径 8
- 1.2 JVM/JRE/JDK 12
- 1.2.1 什么是JVM 12
- 1.2.2 区分JRE与JDK 14
- 1.2.3 下载、安装JDK 15
- 1.2.4 认识JDK安装内容 18
- 1.3 重点复习 19
- Chapter 2 从JDK到IDE 21
- 2.1 从Hello World开始 22
- 2.1.1 撰写Java原始码 22
- 2.1.2 PATH是什么 24
- 2.1.3 JVM(java)与CLASSPATH 27
- 2.1.4 编译程序(javac)与
- CLASSPATH 29
- 2.2 管理原始码与位码文档 30
- 2.2.1 编译程序(javac)与
- SOURCEPATH 30
- 2.2.2 使用package管理类 32
- 2.2.3 使用import偷懒 34
- 2.3 初识模块平台系统 36
- 2.3.1 JVM(java)与module-
- path 37
- 2.3.2 编译程序(javac)与
- module-path 39
- 2.3.3 编译程序(javac)与
- module-source-path 40
- 2.4 使用IDE 41
- 2.4.1 IDE项目管理基础 41
- 2.4.2 使用了哪个JRE 47
- 2.4.3 类文档版本 49
- 2.5 重点复习 51
- Chapter 3 基础语法 53
- 3.1 类型、变量与运算符 54
- 3.1.1 类型 54
- 3.1.2 变量 57
- 3.1.3 运算符 60
- 3.1.4 类型转换 65
- 3.2 流程控制 68
- 3.2.1 if...else条件式 68
- 3.2.2 switch条件式 70
- 3.2.3 for循环 72
- 3.2.4 while循环 73
- 3.2.5 break、continue 74
- 3.3 重点复习 76
- 3.4 课后练习 77
- Chapter 4 认识对象 78
- 4.1 类与对象 79
- 4.1.1 定义类 79
- 4.1.2 使用标准类 81
- 4.1.3 对象指定与相等性 84
- 4.2 基本类型打包器 86
- 4.2.1 打包基本类型 86
- 4.2.2 自动装箱、拆箱 87
- 4.2.3 自动装箱、拆箱的内幕 88
- 4.3 数组对象 90
- 4.3.1 数组基础 91
- 4.3.2 操作数组对象 93
- 4.3.3 数组复制 98
- 4.4 字符串对象 100
- 4.4.1 字符串基础 101
- 4.4.2 字符串特性 103
- 4.4.3 字符串编码 107
- 4.5 查询Java API文件 108
- 4.6 重点复习 113
- 4.7 课后练习 114
- Chapter 5 对象封装 116
- 5.1 何谓封装 117
- 5.1.1 封装对象初始流程 117
- 5.1.2 封装对象操作流程 119
- 5.1.3 封装对象内部数据 121
- 5.2 类语法细节 123
- 5.2.1 public权限修饰 123
- 5.2.2 关于构造函数 125
- 5.2.3 构造函数与方法重载 126
- 5.2.4 使用this 128
- 5.2.5 static类成员 130
- 5.2.6 不定长度自变量 135
- 5.2.7 内部类 136
- 5.2.8 传值调用 138
- 5.3 重点复习 140
- 5.4 课后练习 141
- Chapter 6 继承与多态 142
- 6.1 何谓继承 143
- 6.1.1 继承共同行为 143
- 6.1.2 多态与is-a 147
- 6.1.3 重新定义行为 150
- 6.1.4 抽象方法、抽象类 153
- 6.2 继承语法细节 154
- 6.2.1 protected成员 154
- 6.2.2 重新定义的细节 156
- 6.2.3 再看构造函数 157
- 6.2.4 再看final关键字 159
- 6.2.5 java.lang.Object 160
- 6.2.6 关于垃圾收集 165
- 6.2.7 再看抽象类 167
- 6.3 重点复习 169
- 6.4 课后练习 170
- Chapter 7 接口与多态 171
- 7.1 何谓接口 172
- 7.1.1 接口定义行为 172
- 7.1.2 行为的多态 175
- 7.1.3 解决需求变化 178
- 7.2 接口语法细节 183
- 7.2.1 接口的默认 183
- 7.2.2 匿名内部类 187
- 7.2.3 使用enum枚举常数 190
- 7.3 重点复习 192
- 7.4 课后练习 193
- Chapter 8 异常处理 194
- 8.1 语法与继承架构 195
- 8.1.1 使用try、catch 195
- 8.1.2 异常继承架构 197
- 8.1.3 要抓还是要抛 202
- 8.1.4 贴心还是造成麻烦 205
- 8.1.5 认识堆栈追踪 206
- 8.1.6 关于assert 210
- 8.2 异常与资源管理 213
- 8.2.1 使用finally 213
- 8.2.2 自动尝试关闭资源 215
- 8.2.3 java.lang.AutoCloseable
- 接口 217
- 8.3 重点复习 221
- 8.4 课后练习 222
- Chapter 9 Collection与Map 223
- 9.1 使用Collection收集对象 224
- 9.1.1 认识Collection架构 224
- 9.1.2 具有索引的List 225
- 9.1.3 内容不重复的Set 228
- 9.1.4 支持队列操作的Queue 232
- 9.1.5 使用泛型 234
- 9.1.6 简介Lambda表达式 238
- 9.1.7 Interable与
- Iterator 240
- 9.1.8 Comparable与
- Comparator 243
- 9.2 键值对应的Map 248
- 9.2.1 常用Map操作类 249
- 9.2.2 访问Map键值 252
- 9.3 不可变的Collection
- 与Map 255
- 9.3.1 浅谈不可变特性 255
- 9.3.2 Collections的
- unmodifiableXXX()
- 方法 256
- 9.3.3 List、Set、Map的of()
- 方法 258
- 9.4 重点复习 260
- 9.5 课后练习 262
- Chapter 10 输入/输出 263
- 10.1 InputStream与
- OutputStream 264
- 10.1.1 串流设计的概念 264
- 10.1.2 串流继承架构 266
- 10.1.3 串流处理装饰器 269
- 10.2 字符处理类 273
- 10.2.1 Reader与Writer继承
- 架构 274
- 10.2.2 字符处理装饰器 275
- 10.3 重点复习 277
- 10.4 课后练习 278
- Chapter 11 线程与并行API 279
- 11.1 线程 280
- 11.1.1 线程简介 280
- 11.1.2 Thread与Runnable 282
- 11.1.3 线程生命周期 284
- 11.1.4 关于ThreadGroup 290
- 11.1.5 synchronized与
- volatile 292
- 11.1.6 等待与通知 301
- 11.2 并行API 305
- 11.2.1 Lock、ReadWriteLock与
- Condition 305
- 11.2.2 使用Executor 313
- 11.2.3 并行Collection简介 323
- 11.3 重点复习 326
- 11.4 课后练习 327
- Chapter 12 Lambda 328
- 12.1 认识Lambda语法 329
- 12.1.1 Lambda语法概览 329
- 12.1.2 Lambda表达式与函数
- 接口 332
- 12.1.3 Lambda遇上this与
- final 334
- 12.1.4 方法与构造函数参考 336
- 12.1.5 接口默认方法 338
- 12.2 Functional与Stream API 343
- 12.2.1 使用Optional取代
- null 343
- 12.2.2 标准API的函数接口 345
- 12.2.3 使用Stream进行管道
- 操作 348
- 12.2.4 进行Stream的reduce
- 与collect 351
- 12.2.5 关于flatMap()方法 356
- 12.2.6 Stream相关API 359
- 12.2.7 JDK9 Optional与
- Stream增强 360
- 12.3 Lambda、平行化与异步
- 处理 362
- 12.3.1 Stream与平行化 362
- 12.3.2 Arrays与平行化 366
- 12.3.3 CompletableFuture
- 非同步处理 367
- 12.3.4 JDK9 CompletableFuture
- 增强 369
- 12.4 重点复习 370
- 12.5 课后练习 371
- Chapter 13 时间与日期 372
- 13.1 认识时间与日期 373
- 13.1.1 时间的度量 373
- 13.1.2 年历简介 374
- 13.1.3 认识时区 375
- 13.2 认识Date与Calendar 376
- 13.2.1 时间轴上瞬间的Date 376
- 13.2.2 格式化时间日期的
- DateFormat 377
- 13.2.3 处理时间日期的
- Calendar 379
- 13.2.4 设定TimeZone 382
- 13.3 新时间日期API 383
- 13.3.1 机器时间观点的API 383
- 13.3.2 人类时间观点的API 385
- 13.3.3 对时间的运算 387
- 13.3.4 年历系统设计 389
- 13.4 重点复习 390
- 13.5 课后练习 391
- Chapter 14 NIO与NIO2 393
- 14.1 认识NIO 394
- 14.1.1 NIO概述 394
- 14.1.2 Channel架构与操作 395
- 14.1.3 Buffer架构与操作 396
- 14.2 NIO2文件系统 398
- 14.2.1 NIO2架构 398
- 14.2.2 操作路径 399
- 14.2.3 属性读取与设定 401
- 14.2.4 操作文档与目录 404
- 14.2.5 读取、访问目录 406
- 14.2.6 过滤、搜索文档 410
- 14.3 重点复习 412
- 14.4 课后练习 413
- Chapter 15 通用API 414
- 15.1 日志 415
- 15.1.1 日志API简介 415
- 15.1.2 指定日志层级 417
- 15.1.3 使用Handler与
- Formatter 419
- 15.1.4 自定义Handler、Formatter
- 与Filter 420
- 15.1.5 使用logging.
- properties 422
- 15.2 国际化基础 423
- 15.2.1 使用ResourceBundle 423
- 15.2.2 使用Locale 424
- 15.3 规则表示式 426
- 15.3.1 规则表示式简介 426
- 15.3.2 Pattern与Matcher 433
- 15.4 处理数字 435
- 15.4.1 使用BigInteger 435
- 15.4.2 使用BigDecimal 437
- 15.4.3 数字的格式化 439
- 15.5 再谈堆栈追踪 441
- 15.5.1 获取
- StackTraceElement 441
- 15.5.2 JDK9的Stack-
- Walking API 443
- 15.6 重点复习 447
- 15.7 课后练习 448
- Chapter 16 整合数据库 449
- 16.1 JDBC入门 450
- 16.1.1 JDBC简介 450
- 16.1.2 连接数据库 454
- 16.1.3 使用Statement、
- ResultSet 459
- 16.1.4 使用PreparedStatement、
- CallableStatement 464
- 16.2 JDBC进阶 468
- 16.2.1 使用DataSource取得
- 联机 468
- 16.2.2 使用ResultSet卷动、
- 更新数据 471
- 16.2.3 批次更新 473
- 16.2.4 Blob与Clob 474
- 16.2.5 交易简介 474
- 16.2.6 metadata简介 481
- 16.2.7 RowSet简介 484
- 16.3 重点复习 486
- 16.4 课后练习 487
- Chapter 17 反射与类加载器 489
- 17.1 运用反射 490
- 17.1.1 Class与.class文档 490
- 17.1.2 使用Class.
- forName() 492
- 17.1.3 从Class获得信息 494
- 17.1.4 从Class建立对象 496
- 17.1.5 操作对象方法与成员 499
- 17.1.6 动态代理 501
- 17.1.7 当反射遇上模块 505
- 17.1.8 使用ServiceLoader 511
- 17.2 了解类加载器 513
- 17.2.1 JDK9类加载器层级 513
- 17.2.2 建立ClassLoader
- 实例 516
- 17.3 重点复习 517
- 17.4 课后练习 519
- Chapter 18 自定义泛型、枚举与注释 520
- 18.1 自定义泛型 521
- 18.1.1 使用extends与? 521
- 18.1.2 使用super与? 525
- 18.2 自定义枚举 528
- 18.2.1 了解java.lang.Enum类 528
- 18.2.2 enum高级运用 531
- 18.3 关于注释 536
- 18.3.1 常用标准注释 536
- 18.3.2 自定义注释类型 540
- 18.3.3 执行时期读取注释信息 545
- 18.4 重点复习 548
- 18.5 课后练习 549
- Chapter 19 深入模块化 550
- 19.1 运用模块 551
- 19.1.1 模块的种类 551
- 19.1.2 requires、exports与
- opens细节 554
- 19.1.3 修补模块 557
- 19.1.4 放宽模块封装与依赖 558
- 19.2 模块API 560
- 19.2.1 使用Module 560
- 19.2.2 使用
- ModuleDescriptor 562
- 19.2.3 浅谈ModuleLayer 562
- 19.3 打包模块 564
- 19.3.1 使用jar打包 564
- 19.3.2 使用jmod打包 566
- 19.3.3 使用jlink建立执行时期
- 映像 568
- 19.4 重点复习 569
- 19.5 课后练习 570
- Appendix 571
- A.1 项目环境配置 572
- A.2 打开案例 572
- Java SE 9 新功能索引
- Java SE 9后的特性版本时间轴变动 15
- JDK 9文档实体布局变动 18
- 初探模块平台系统 36
- javac新增-release参数 50
- 支持Unicode 8.0 54
- 内建jshell 56
- Java API文件支持搜索功能 112
- StackTraceElement新增方法 207
- Try-with-resources语法改进 217
- 定义匿名类别时的泛型语法改进 239
- List、Set、Map新增of( )方法 258
- 接口支持定义private方法 340
- Collectors新增filtering( )方法 356
- Collectors新增flatMapping( )方法 359
- Optional与Stream增强 360
- CompletableFuture增强 369
- 支持UTF-8编码的.properities文件 425
- Stack-Walking API 443
- 反射与类加载器机制 490
- @Deprecated增强 537
- ElementType新增MODULE 545
- 深入模块化 551