diff --git a/docs/index.html b/docs/index.html
index 7f54b8af..b7e41098 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -55,6 +55,11 @@
/*font-family: Microsoft YaHei, Source Sans Pro, Helvetica Neue, Arial, sans-serif !important;*/
}
+ .sidebar, .sidebar-nav {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
.markdown-section>p {
font-size: 16px !important;
}
@@ -66,7 +71,7 @@
/*.anchor span {
color: rgb(66, 185, 131);
- }*/
+ }*/
section.cover h1 {
margin: 0;
@@ -345,29 +350,29 @@
window.$docsify = {
name: '《On Java 8》中文版',
repo: 'https://github.com/LingCoder/OnJava8',
- // loadSidebar: true,
- subMaxLevel: 3,
- search: {
- paths: 'auto',
- placeholder: '🔍 点击搜索 ',
- noData: '😞 没有结果! ',
- // Headline depth, 1 - 6
- depth: 6
+ loadSidebar: 'sidebar.md',
+ // subMaxLevel: 3,
+ search: {
+ paths: 'auto',
+ placeholder: '🔍 点击搜索 ',
+ noData: '😞 没有结果! ',
+ // Headline depth, 1 - 6
+ depth: 6
+ },
+ copyCode: {
+ buttonText : '复制',
+ errorText : 'Error',
+ successText: 'OK!'
+ },
+ pagination: {
+ previousText: '上一章节',
+ nextText: '下一章节',
},
- copyCode: {
- buttonText : '复制',
- errorText : 'Error',
- successText: 'OK!'
- },
- pagination: {
- previousText: '上一章节',
- nextText: '下一章节',
- },
- coverpage: true
+ coverpage: true,
}
-
+
diff --git a/docs/sidebar.md b/docs/sidebar.md
index d1d99dcd..e79c07a0 100644
--- a/docs/sidebar.md
+++ b/docs/sidebar.md
@@ -1,9 +1,13 @@
-#### [译者的话](README.md)
-#### [封面](book/00-On-Java-8.md)
-#### [前言](book/00-Preface.md)
-#### [简介](book/00-Introduction.md)
-## [第一章 对象的概念](book/01-What-is-an-Object.md)
+### [译者的话](README.md)
+
+### [封面](book/00-On-Java-8.md)
+
+### [前言](book/00-Preface.md)
+
+### [简介](book/00-Introduction.md)
+
+### [第一章 对象的概念](book/01-What-is-an-Object.md)
* [抽象](book/01-What-is-an-Object.md#抽象)
* [接口](book/01-What-is-an-Object.md#接口)
* [服务提供](book/01-What-is-an-Object.md#服务提供)
@@ -16,13 +20,15 @@
* [生命周期](book/01-What-is-an-Object.md#生命周期)
* [异常处理](book/01-What-is-an-Object.md#异常处理)
* [本章小结](book/01-What-is-an-Object.md#本章小结)
-## [第二章 安装Java和本书用例](book/02-Installing-Java-and-the-Book-Examples.md)
+
+### [第二章 安装Java和本书用例](book/02-Installing-Java-and-the-Book-Examples.md)
* [编辑器](book/02-Installing-Java-and-the-Book-Examples.md#编辑器)
* [Shell](book/02-Installing-Java-and-the-Book-Examples.md#Shell)
* [Java安装](book/02-Installing-Java-and-the-Book-Examples.md#Java安装)
* [校验安装](book/02-Installing-Java-and-the-Book-Examples.md#校验安装)
* [安装和运行代码示例](book/02-Installing-Java-and-the-Book-Examples.md#安装和运行代码示例)
-## [第三章 万物皆对象](book/03-Objects-Everywhere.md)
+
+### [第三章 万物皆对象](book/03-Objects-Everywhere.md)
* [对象操纵](book/03-Objects-Everywhere.md#对象操纵)
* [对象创建](book/03-Objects-Everywhere.md#对象创建)
* [代码注释](book/03-Objects-Everywhere.md#代码注释)
@@ -32,7 +38,8 @@
* [小试牛刀](book/03-Objects-Everywhere.md#小试牛刀)
* [编码风格](book/03-Objects-Everywhere.md#编码风格)
* [本章小结](book/03-Objects-Everywhere.md#本章小结)
-## [第四章 运算符](book/04-Operators.md)
+
+### [第四章 运算符](book/04-Operators.md)
* [开始使用](book/04-Operators.md#开始使用)
* [优先级](book/04-Operators.md#优先级)
* [赋值](book/04-Operators.md#赋值)
@@ -50,7 +57,8 @@
* [Java没有sizeof](book/04-Operators.md#Java没有sizeof)
* [运算符总结](book/04-Operators.md#运算符总结)
* [本章小结](book/04-Operators.md#本章小结)
-## [第五章 控制流](book/05-Control-Flow.md)
+
+### [第五章 控制流](book/05-Control-Flow.md)
* [true和flase](book/05-Control-Flow.md#true和flase)
* [if-else](book/05-Control-Flow.md#if-else)
* [迭代语句](book/05-Control-Flow.md#迭代语句)
@@ -61,7 +69,8 @@
* [switch](book/05-Control-Flow.md#switch)
* [switch字符串](book/05-Control-Flow.md#switch字符串)
* [本章小结](book/05-Control-Flow.md#本章小结)
-## [第六章 初始化和清理](book/06-Housekeeping.md)
+
+### [第六章 初始化和清理](book/06-Housekeeping.md)
* [利用构造器保证初始化](book/06-Housekeeping.md#利用构造器保证初始化)
* [方法重载](book/06-Housekeeping.md#方法重载)
* [无参构造器](book/06-Housekeeping.md#无参构造器)
@@ -72,13 +81,15 @@
* [数组初始化](book/06-Housekeeping.md#数组初始化)
* [枚举类型](book/06-Housekeeping.md#枚举类型)
* [本章小结](book/06-Housekeeping.md#本章小结)
-## [第七章 封装](book/07-Implementation-Hiding.md)
+
+### [第七章 封装](book/07-Implementation-Hiding.md)
* [包的概念](book/07-Implementation-Hiding.md#包的概念)
* [访问权限修饰符](book/07-Implementation-Hiding.md#访问权限修饰符)
* [接口和实现](book/07-Implementation-Hiding.md#接口和实现)
* [类访问权限](book/07-Implementation-Hiding.md#类访问权限)
* [本章小结](book/07-Implementation-Hiding.md#本章小结)
-## [第八章 复用](book/08-Reuse.md)
+
+### [第八章 复用](book/08-Reuse.md)
* [组合语法](book/08-Reuse.md#组合语法)
* [继承语法](book/08-Reuse.md#继承语法)
* [委托](book/08-Reuse.md#委托)
@@ -89,14 +100,16 @@
* [final关键字](book/08-Reuse.md#final关键字)
* [类初始化和加载](book/08-Reuse.md#类初始化和加载)
* [本章小结](book/08-Reuse.md#本章小结)
-## [第九章 多态](book/09-Polymorphism.md)
+
+### [第九章 多态](book/09-Polymorphism.md)
* [向上转型回溯](book/09-Polymorphism.md#向上转型回溯)
* [深入理解](book/09-Polymorphism.md#深入理解)
* [构造器和多态](book/09-Polymorphism.md#构造器和多态)
* [返回类型协变](book/09-Polymorphism.md#返回类型协变)
* [使用继承设计](book/09-Polymorphism.md#使用继承设计)
* [本章小结](book/09-Polymorphism.md#本章小结)
-## [第十章 接口](book/10-Interfaces.md)
+
+### [第十章 接口](book/10-Interfaces.md)
* [抽象类和方法](book/10-Interfaces.md#抽象类和方法)
* [接口创建](book/10-Interfaces.md#接口创建)
* [抽象类和接口](book/10-Interfaces.md#抽象类和接口)
@@ -108,7 +121,8 @@
* [接口嵌套](book/10-Interfaces.md#接口嵌套)
* [接口和工厂方法模式](book/10-Interfaces.md#接口和工厂方法模式)
* [本章小结](book/10-Interfaces.md#本章小结)
-## [第十一章 内部类](book/11-Inner-Classes.md)
+
+### [第十一章 内部类](book/11-Inner-Classes.md)
* [创建内部类](book/11-Inner-Classes.md#创建内部类)
* [链接外部类](book/11-Inner-Classes.md#链接外部类)
* [内部类this和new的使用](book/11-Inner-Classes.md#内部类this和new的使用)
@@ -122,7 +136,8 @@
* [内部类局部变量](book/11-Inner-Classes.md#内部类局部变量)
* [内部类标识符](book/11-Inner-Classes.md#内部类标识符)
* [本章小结](book/11-Inner-Classes.md#本章小结)
-## [第十二章 集合](book/12-Collections.md)
+
+### [第十二章 集合](book/12-Collections.md)
* [泛型和类型安全的集合](book/12-Collections.md#泛型和类型安全的集合)
* [基本概念](book/12-Collections.md#基本概念)
* [添加元素组](book/12-Collections.md#添加元素组)
@@ -137,7 +152,8 @@
* [集合与迭代器](book/12-Collections.md#集合与迭代器)
* [for-in和迭代器](book/12-Collections.md#for-in和迭代器)
* [本章小结](book/12-Collections.md#本章小结)
-## [第十三章 函数式编程](book/13-Functional-Programming.md)
+
+### [第十三章 函数式编程](book/13-Functional-Programming.md)
* [新旧对比](book/13-Functional-Programming.md#新旧对比)
* [Lambda表达式](book/13-Functional-Programming.md#Lambda表达式)
* [方法引用](book/13-Functional-Programming.md#方法引用)
@@ -148,14 +164,16 @@
* [柯里化和部分求值](book/13-Functional-Programming.md#柯里化和部分求值)
* [纯函数式编程](book/13-Functional-Programming.md#纯函数式编程)
* [本章小结](book/13-Functional-Programming.md#本章小结)
-## [第十四章 流式编程](book/14-Streams.md)
+
+### [第十四章 流式编程](book/14-Streams.md)
* [流支持](book/14-Streams.md#流支持)
* [流创建](book/14-Streams.md#流创建)
* [中级流操作](book/14-Streams.md#中级流操作)
* [Optional类](book/14-Streams.md#Optional类)
* [终端操作](book/14-Streams.md#终端操作)
* [本章小结](book/14-Streams.md#本章小结)
-## [第十五章 异常](book/15-Exceptions.md)
+
+### [第十五章 异常](book/15-Exceptions.md)
* [异常概念](book/15-Exceptions.md#异常概念)
* [基本异常](book/15-Exceptions.md#基本异常)
* [异常捕获](book/15-Exceptions.md#异常捕获)
@@ -171,7 +189,8 @@
* [异常准则](book/15-Exceptions.md#异常准则)
* [异常指南](book/15-Exceptions.md#异常指南)
* [本章小结](book/15-Exceptions.md#本章小结)
-## [第十六章 代码校验](book/16-Validating-Your-Code.md)
+
+### [第十六章 代码校验](book/16-Validating-Your-Code.md)
* [测试](book/16-Validating-Your-Code.md#测试)
* [前提条件](book/16-Validating-Your-Code.md#前提条件)
* [测试驱动开发](book/16-Validating-Your-Code.md#测试驱动开发)
@@ -186,7 +205,8 @@
* [重构](book/16-Validating-Your-Code.md#重构)
* [持续集成](book/16-Validating-Your-Code.md#持续集成)
* [本章小结](book/16-Validating-Your-Code.md#本章小结)
-## [第十七章 文件](book/17-Files.md)
+
+### [第十七章 文件](book/17-Files.md)
* [文件和目录路径](book/17-Files.md#文件和目录路径)
* [目录](book/17-Files.md#目录)
* [文件系统](book/17-Files.md#文件系统)
@@ -194,7 +214,8 @@
* [文件查找](book/17-Files.md#文件查找)
* [文件读写](book/17-Files.md#文件读写)
* [本章小结](book/17-Files.md#本章小结)
-## [第十八章 字符串](book/18-Strings.md)
+
+### [第十八章 字符串](book/18-Strings.md)
* [字符串的不可变](book/18-Strings.md#字符串的不可变)
* [重载和StringBuilder](book/18-Strings.md#重载和StringBuilder)
* [意外递归](book/18-Strings.md#意外递归)
@@ -204,7 +225,8 @@
* [扫描输入](book/18-Strings.md#扫描输入)
* [StringTokenizer类](book/18-Strings.md#StringTokenizer类)
* [本章小结](book/18-Strings.md#本章小结)
-## [第十九章 类型信息](book/19-Type-Information.md)
+
+### [第十九章 类型信息](book/19-Type-Information.md)
* [运行时类型信息](book/19-Type-Information.md#运行时类型信息)
* [类的对象](book/19-Type-Information.md#类的对象)
* [类型转换检测](book/19-Type-Information.md#类型转换检测)
@@ -215,7 +237,8 @@
* [Optional类](book/19-Type-Information.md#Optional类)
* [接口和类型](book/19-Type-Information.md#接口和类型)
* [本章小结](book/19-Type-Information.md#本章小结)
-## [第二十章 泛型](book/20-Generics.md)
+
+### [第二十章 泛型](book/20-Generics.md)
* [简单泛型](book/20-Generics.md#简单泛型)
* [泛型接口](book/20-Generics.md#泛型接口)
* [泛型方法](book/20-Generics.md#泛型方法)
@@ -233,7 +256,8 @@
* [补偿不足](book/20-Generics.md#补偿不足)
* [辅助潜在类型](book/20-Generics.md#辅助潜在类型)
* [泛型的优劣](book/20-Generics.md#泛型的优劣)
-## [第二十一章 数组](book/21-Arrays.md)
+
+### [第二十一章 数组](book/21-Arrays.md)
* [数组特性](book/21-Arrays.md#数组特性)
* [一等对象](book/21-Arrays.md#一等对象)
* [返回数组](book/21-Arrays.md#返回数组)
@@ -254,7 +278,8 @@
* [binarySearch二分查找](book/21-Arrays.md#binarySearch二分查找)
* [parallelPrefix并行前缀](book/21-Arrays.md#parallelPrefix并行前缀)
* [本章小结](book/21-Arrays.md#本章小结)
-## [第二十二章 枚举](book/22-Enumerations.md)
+
+### [第二十二章 枚举](book/22-Enumerations.md)
* [基本功能](book/22-Enumerations.md#基本功能)
* [方法添加](book/22-Enumerations.md#方法添加)
* [switch语句](book/22-Enumerations.md#switch语句)
@@ -267,13 +292,15 @@
* [常量特定方法](book/22-Enumerations.md#常量特定方法)
* [多次调度](book/22-Enumerations.md#多次调度)
* [本章小结](book/22-Enumerations.md#本章小结)
-## [第二十三章 注解](book/23-Annotations.md)
+
+### [第二十三章 注解](book/23-Annotations.md)
* [基本语法](book/23-Annotations.md#基本语法)
* [编写注解处理器](book/23-Annotations.md#编写注解处理器)
* [使用javac处理注解](book/23-Annotations.md#使用javac处理注解)
* [基于注解的单元测试](book/23-Annotations.md#基于注解的单元测试)
* [本章小结](book/23-Annotations.md#本章小结)
-## [第二十四章 并发编程](book/24-Concurrent-Programming.md)
+
+### [第二十四章 并发编程](book/24-Concurrent-Programming.md)
* [术语问题](book/24-Concurrent-Programming.md#术语问题)
* [并发的超能力](book/24-Concurrent-Programming.md#并发的超能力)
* [针对速度](book/24-Concurrent-Programming.md#针对速度)
@@ -288,7 +315,8 @@
* [构造函数非线程安全](book/24-Concurrent-Programming.md#构造函数非线程安全)
* [复杂性和代价](book/24-Concurrent-Programming.md#复杂性和代价)
* [本章小结](book/24-Concurrent-Programming.md#本章小结)
-## [第二十五章 设计模式](book/25-Patterns.md)
+
+### [第二十五章 设计模式](book/25-Patterns.md)
* [概念](book/25-Patterns.md#概念)
* [构建型](book/25-Patterns.md#构建型)
* [面向实施](book/25-Patterns.md#面向实施)
@@ -305,21 +333,25 @@
* [RTTI的优劣](book/25-Patterns.md#RTTI的优劣)
* [本章小结](book/25-Patterns.md#本章小结)
-## [附录:补充](book/Appendix-Supplements.md)
+### [附录:补充](book/Appendix-Supplements.md)
* [可下载的补充](book/Appendix-Supplements.md#可下载的补充)
* [通过Thinking-in-C来巩固Java基础](book/Appendix-Supplements.md#通过Thinking-in-C来巩固Java基础)
* [动手实践](book/Appendix-Supplements.md#动手实践)
-## [附录:编程指南](book/Appendix-Programming-Guidelines.md)
+
+### [附录:编程指南](book/Appendix-Programming-Guidelines.md)
* [设计](book/Appendix-Programming-Guidelines.md#设计)
* [实现](book/Appendix-Programming-Guidelines.md#实现)
-## [附录:文档注释](book/Appendix-Javadoc.md)
-## [附录:对象传递和返回](book/Appendix-Passing-and-Returning-Objects.md)
+
+### [附录:文档注释](book/Appendix-Javadoc.md)
+
+### [附录:对象传递和返回](book/Appendix-Passing-and-Returning-Objects.md)
* [传递引用](book/Appendix-Passing-and-Returning-Objects.md#传递引用)
* [本地拷贝](book/Appendix-Passing-and-Returning-Objects.md#本地拷贝)
* [控制克隆](book/Appendix-Passing-and-Returning-Objects.md#控制克隆)
* [不可变类](book/Appendix-Passing-and-Returning-Objects.md#不可变类)
* [本章小结](book/Appendix-Passing-and-Returning-Objects.md#本章小结)
-## [附录:流式IO](book/Appendix-IO-Streams.md)
+
+### [附录:流式IO](book/Appendix-IO-Streams.md)
* [输入流类型](book/Appendix-IO-Streams.md#输入流类型)
* [输出流类型](book/Appendix-IO-Streams.md#输出流类型)
* [添加属性和有用的接口](book/Appendix-IO-Streams.md#添加属性和有用的接口)
@@ -327,9 +359,11 @@
* [RandomAccessFile类](book/Appendix-IO-Streams.md#RandomAccessFile类)
* [IO流典型用途](book/Appendix-IO-Streams.md#IO流典型用途)
* [本章小结](book/Appendix-IO-Streams.md#本章小结)
-## [附录:标准IO](book/Appendix-Standard-IO.md)
+
+### [附录:标准IO](book/Appendix-Standard-IO.md)
* [执行控制](book/Appendix-Standard-IO.md#执行控制)
-## [附录:新IO](book/Appendix-New-IO.md)
+
+### [附录:新IO](book/Appendix-New-IO.md)
* [ByteBuffer](book/Appendix-New-IO.md#ByteBuffer)
* [转换数据](book/Appendix-New-IO.md#数据转换)
* [获取原始类型](book/Appendix-New-IO.md#基本类型获取)
@@ -337,11 +371,13 @@
* [使用缓冲区进行数据操作](book/Appendix-New-IO.md#缓冲区数据操作)
* [内存映射文件](book/Appendix-New-IO.md#内存映射文件)
* [文件锁定](book/Appendix-New-IO.md#文件锁定)
-## [附录:理解equals和hashCode方法](book/Appendix-Understanding-equals-and-hashCode.md)
+
+### [附录:理解equals和hashCode方法](book/Appendix-Understanding-equals-and-hashCode.md)
* [equals典范](book/Appendix-Understanding-equals-and-hashCode.md#equals典范)
* [哈希和哈希码](book/Appendix-Understanding-equals-and-hashCode.md#哈希和哈希码)
* [调整HashMap](book/Appendix-Understanding-equals-and-hashCode.md#调整HashMap)
-## [附录:集合主题](book/Appendix-Collection-Topics.md)
+
+### [附录:集合主题](book/Appendix-Collection-Topics.md)
* [示例数据](book/Appendix-Collection-Topics.md#示例数据)
* [List表现](book/Appendix-Collection-Topics.md#List表现)
* [Set表现](book/Appendix-Collection-Topics.md#Set表现)
@@ -358,7 +394,8 @@
* [持有引用](book/Appendix-Collection-Topics.md#持有引用)
* [避免旧式类库](book/Appendix-Collection-Topics.md#避免旧式类库)
* [本章小结](book/Appendix-Collection-Topics.md#本章小结)
-## [附录:并发底层原理](book/Appendix-Low-Level-Concurrency.md)
+
+### [附录:并发底层原理](book/Appendix-Low-Level-Concurrency.md)
* [线程](book/Appendix-Low-Level-Concurrency.md#线程)
* [异常捕获](book/Appendix-Low-Level-Concurrency.md#异常捕获)
* [资源共享](book/Appendix-Low-Level-Concurrency.md#资源共享)
@@ -367,26 +404,32 @@
* [关键部分](book/Appendix-Low-Level-Concurrency.md#关键部分)
* [库组件](book/Appendix-Low-Level-Concurrency.md#库组件)
* [本章小结](book/Appendix-Low-Level-Concurrency.md#本章小结)
-## [附录:数据压缩](book/Appendix-Data-Compression.md)
+
+### [附录:数据压缩](book/Appendix-Data-Compression.md)
* [使用Gzip简单压缩](book/Appendix-Data-Compression.md#使用Gzip简单压缩)
* [使用zip多文件存储](book/Appendix-Data-Compression.md#使用zip多文件存储)
* [Java的jar](book/Appendix-Data-Compression.md#Java的jar)
-## [附录:对象序列化](book/Appendix-Object-Serialization.md)
+
+### [附录:对象序列化](book/Appendix-Object-Serialization.md)
* [查找类](book/Appendix-Object-Serialization.md#查找类)
* [控制序列化](book/Appendix-Object-Serialization.md#控制序列化)
* [使用持久化](book/Appendix-Object-Serialization.md#使用持久化)
-## [附录:静态语言类型检查](book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md)
+
+### [附录:静态语言类型检查](book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md)
* [前言](book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#前言)
* [静态类型检查和测试](book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#静态类型检查和测试)
* [如何提升打字](book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#如何提升打字)
* [生产力的成本](book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#生产力的成本)
* [静态和动态](book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md#静态和动态)
-## [附录:C++和Java的优良传统](book/Appendix-The-Positive-Legacy-of-C-plus-plus-and-Java.md)
-## [附录:成为一名程序员](book/Appendix-Becoming-a-Programmer.md)
+
+### [附录:C++和Java的优良传统](book/Appendix-The-Positive-Legacy-of-C-plus-plus-and-Java.md)
+
+### [附录:成为一名程序员](book/Appendix-Becoming-a-Programmer.md)
* [如何开始](book/Appendix-Becoming-a-Programmer.md#如何开始)
* [码农生涯](book/Appendix-Becoming-a-Programmer.md#码农生涯)
* [百分之五的神话](book/Appendix-Becoming-a-Programmer.md#百分之五的神话)
* [重在动手](book/Appendix-Becoming-a-Programmer.md#重在动手)
* [像打字般编程](book/Appendix-Becoming-a-Programmer.md#像打字般编程)
* [做你喜欢的事](book/Appendix-Becoming-a-Programmer.md#做你喜欢的事)
-## [词汇表](book/GLOSSARY.md)
+
+### [词汇表](book/GLOSSARY.md)