Java JDK 9学习笔记 出版时间:2018内容简介 《Java JDK 9学习笔记》是作者多年来教学实践经验的总结,汇集了学员在学习Java 或认证考试时遇到的概念、操 作、应用等问题及解决方案。 《Java JDK 9学习笔记》针对Java SE 9 新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面 翻新,并详细介绍了Java 9 的模块化,JVM、JRE、Java SE API、JDK 与IDE 之间的对照关系。必 要时可从Java SE API 的源代码分析,了解各种语法在Java SE API 中如何应用。对于建议练习的范 例提供了Lab 文档,以突出练习重点。此外,《Java JDK 9学习笔记》还将IDE 操作纳为教学内容之一,让读者能与实 践相结合,轻松快速掌握Java 编程技巧。 《Java JDK 9学习笔记》适合Java 的初、中级读者以及广大Java 应用开发人员阅读。目录Chapter 1 Java平台概论 11.1 Java不只是语言 21.1.1 前世今生 21.1.2 三大平台 51.1.3 JCP与JSR 61.1.4 Oracle JDK与OpenJDK 71.1.5 建议的学习路径 81.2 JVM/JRE/JDK 121.2.1 什么是JVM 121.2.2 区分JRE与JDK 141.2.3 下载、安装JDK 151.2.4 认识JDK安装内容 181.3 重点复习 19Chapter 2 从JDK到IDE 212.1 从Hello World开始 222.1.1 撰写Java原始码 222.1.2 PATH是什么 242.1.3 JVM(java)与CLASSPATH 272.1.4 编译程序(javac)与CLASSPATH 292.2 管理原始码与位码文档 302.2.1 编译程序(javac)与SOURCEPATH 302.2.2 使用package管理类 322.2.3 使用import偷懒 342.3 初识模块平台系统 362.3.1 JVM(java)与module-path 372.3.2 编译程序(javac)与module-path 392.3.3 编译程序(javac)与module-source-path 402.4 使用IDE 412.4.1 IDE项目管理基础 412.4.2 使用了哪个JRE 472.4.3 类文档版本 492.5 重点复习 51Chapter 3 基础语法 533.1 类型、变量与运算符 543.1.1 类型 543.1.2 变量 573.1.3 运算符 603.1.4 类型转换 653.2 流程控制 683.2.1 if...else条件式 683.2.2 switch条件式 703.2.3 for循环 723.2.4 while循环 733.2.5 break、continue 743.3 重点复习 763.4 课后练习 77Chapter 4 认识对象 784.1 类与对象 794.1.1 定义类 794.1.2 使用标准类 814.1.3 对象指定与相等性 844.2 基本类型打包器 864.2.1 打包基本类型 864.2.2 自动装箱、拆箱 874.2.3 自动装箱、拆箱的内幕 884.3 数组对象 904.3.1 数组基础 914.3.2 操作数组对象 934.3.3 数组复制 984.4 字符串对象 1004.4.1 字符串基础 1014.4.2 字符串特性 1034.4.3 字符串编码 1074.5 查询Java API文件 1084.6 重点复习 1134.7 课后练习 114Chapter 5 对象封装 1165.1 何谓封装 1175.1.1 封装对象初始流程 1175.1.2 封装对象操作流程 1195.1.3 封装对象内部数据 1215.2 类语法细节 1235.2.1 public权限修饰 1235.2.2 关于构造函数 1255.2.3 构造函数与方法重载 1265.2.4 使用this 1285.2.5 static类成员 1305.2.6 不定长度自变量 1355.2.7 内部类 1365.2.8 传值调用 1385.3 重点复习 1405.4 课后练习 141Chapter 6 继承与多态 1426.1 何谓继承 1436.1.1 继承共同行为 1436.1.2 多态与is-a 1476.1.3 重新定义行为 1506.1.4 抽象方法、抽象类 1536.2 继承语法细节 1546.2.1 protected成员 1546.2.2 重新定义的细节 1566.2.3 再看构造函数 1576.2.4 再看final关键字 1596.2.5 java.lang.Object 1606.2.6 关于垃圾收集 1656.2.7 再看抽象类 1676.3 重点复习 1696.4 课后练习 170Chapter 7 接口与多态 1717.1 何谓接口 1727.1.1 接口定义行为 1727.1.2 行为的多态 1757.1.3 解决需求变化 1787.2 接口语法细节 1837.2.1 接口的默认 1837.2.2 匿名内部类 1877.2.3 使用enum枚举常数 1907.3 重点复习 1927.4 课后练习 193Chapter 8 异常处理 1948.1 语法与继承架构 1958.1.1 使用try、catch 1958.1.2 异常继承架构 1978.1.3 要抓还是要抛 2028.1.4 贴心还是造成麻烦 2058.1.5 认识堆栈追踪 2068.1.6 关于assert 2108.2 异常与资源管理 2138.2.1 使用finally 2138.2.2 自动尝试关闭资源 2158.2.3 java.lang.AutoCloseable接口 2178.3 重点复习 2218.4 课后练习 222Chapter 9 Collection与Map 2239.1 使用Collection收集对象 2249.1.1 认识Collection架构 2249.1.2 具有索引的List 2259.1.3 内容不重复的Set 2289.1.4 支持队列操作的Queue 2329.1.5 使用泛型 2349.1.6 简介Lambda表达式 2389.1.7 Interable与Iterator 2409.1.8 Comparable与Comparator 2439.2 键值对应的Map 2489.2.1 常用Map操作类 2499.2.2 访问Map键值 2529.3 不可变的Collection与Map 2559.3.1 浅谈不可变特性 2559.3.2 Collections的unmodifiableXXX()方法 2569.3.3 List、Set、Map的of()方法 2589.4 重点复习 2609.5 课后练习 262Chapter 10 输入/输出 26310.1 InputStream与OutputStream 26410.1.1 串流设计的概念 26410.1.2 串流继承架构 26610.1.3 串流处理装饰器 26910.2 字符处理类 27310.2.1 Reader与Writer继承架构 27410.2.2 字符处理装饰器 27510.3 重点复习 27710.4 课后练习 278Chapter 11 线程与并行API 27911.1 线程 28011.1.1 线程简介 28011.1.2 Thread与Runnable 28211.1.3 线程生命周期 28411.1.4 关于ThreadGroup 29011.1.5 synchronized与volatile 29211.1.6 等待与通知 30111.2 并行API 30511.2.1 Lock、ReadWriteLock与Condition 30511.2.2 使用Executor 31311.2.3 并行Collection简介 32311.3 重点复习 32611.4 课后练习 327Chapter 12 Lambda 32812.1 认识Lambda语法 32912.1.1 Lambda语法概览 32912.1.2 Lambda表达式与函数接口 33212.1.3 Lambda遇上this与final 33412.1.4 方法与构造函数参考 33612.1.5 接口默认方法 33812.2 Functional与Stream API 34312.2.1 使用Optional取代null 34312.2.2 标准API的函数接口 34512.2.3 使用Stream进行管道操作 34812.2.4 进行Stream的reduce与collect 35112.2.5 关于flatMap()方法 35612.2.6 Stream相关API 35912.2.7 JDK9 Optional与Stream增强 36012.3 Lambda、平行化与异步处理 36212.3.1 Stream与平行化 36212.3.2 Arrays与平行化 36612.3.3 CompletableFuture非同步处理 36712.3.4 JDK9 CompletableFuture增强 36912.4 重点复习 37012.5 课后练习 371Chapter 13 时间与日期 37213.1 认识时间与日期 37313.1.1 时间的度量 37313.1.2 年历简介 37413.1.3 认识时区 37513.2 认识Date与Calendar 37613.2.1 时间轴上瞬间的Date 37613.2.2 格式化时间日期的DateFormat 37713.2.3 处理时间日期的Calendar 37913.2.4 设定TimeZone 38213.3 新时间日期API 38313.3.1 机器时间观点的API 38313.3.2 人类时间观点的API 38513.3.3 对时间的运算 38713.3.4 年历系统设计 38913.4 重点复习 39013.5 课后练习 391Chapter 14 NIO与NIO2 39314.1 认识NIO 39414.1.1 NIO概述 39414.1.2 Channel架构与操作 39514.1.3 Buffer架构与操作 39614.2 NIO2文件系统 39814.2.1 NIO2架构 39814.2.2 操作路径 39914.2.3 属性读取与设定 40114.2.4 操作文档与目录 40414.2.5 读取、访问目录 40614.2.6 过滤、搜索文档 41014.3 重点复习 41214.4 课后练习 413Chapter 15 通用API 41415.1 日志 41515.1.1 日志API简介 41515.1.2 指定日志层级 41715.1.3 使用Handler与Formatter 41915.1.4 自定义Handler、Formatter与Filter 42015.1.5 使用logging.properties 42215.2 国际化基础 42315.2.1 使用ResourceBundle 42315.2.2 使用Locale 42415.3 规则表示式 42615.3.1 规则表示式简介 42615.3.2 Pattern与Matcher 43315.4 处理数字 43515.4.1 使用BigInteger 43515.4.2 使用BigDecimal 43715.4.3 数字的格式化 43915.5 再谈堆栈追踪 44115.5.1 获取StackTraceElement 44115.5.2 JDK9的Stack-Walking API 44315.6 重点复习 44715.7 课后练习 448Chapter 16 整合数据库 44916.1 JDBC入门 45016.1.1 JDBC简介 45016.1.2 连接数据库 45416.1.3 使用Statement、ResultSet 45916.1.4 使用PreparedStatement、CallableStatement 46416.2 JDBC进阶 46816.2.1 使用DataSource取得联机 46816.2.2 使用ResultSet卷动、更新数据 47116.2.3 批次更新 47316.2.4 Blob与Clob 47416.2.5 交易简介 47416.2.6 metadata简介 48116.2.7 RowSet简介 48416.3 重点复习 48616.4 课后练习 487Chapter 17 反射与类加载器 48917.1 运用反射 49017.1.1 Class与.class文档 49017.1.2 使用Class.forName() 49217.1.3 从Class获得信息 49417.1.4 从Class建立对象 49617.1.5 操作对象方法与成员 49917.1.6 动态代理 50117.1.7 当反射遇上模块 50517.1.8 使用ServiceLoader 51117.2 了解类加载器 51317.2.1 JDK9类加载器层级 51317.2.2 建立ClassLoader实例 51617.3 重点复习 51717.4 课后练习 519Chapter 18 自定义泛型、枚举与注释 52018.1 自定义泛型 52118.1.1 使用extends与? 521 18.1.2 使用super与? 52518.2 自定义枚举 52818.2.1 了解java.lang.Enum类 52818.2.2 enum高*运用 53118.3 关于注释 53618.3.1 常用标准注释 53618.3.2 自定义注释类型 54018.3.3 执行时期读取注释信息 54518.4 重点复习 54818.5 课后练习 549Chapter 19 深入模块化 55019.1 运用模块 55119.1.1 模块的种类 55119.1.2 requires、exports与opens细节 55419.1.3 修补模块 55719.1.4 放宽模块封装与依赖 55819.2 模块API 56019.2.1 使用Module 56019.2.2 使用ModuleDescriptor 56219.2.3 浅谈ModuleLayer 56219.3 打包模块 56419.3.1 使用jar打包 56419.3.2 使用jmod打包 56619.3.3 使用jlink建立执行时期映像 568 上一篇: 探索历史大数据:历史学家的宏观视角 下一篇: Android组件化架构