Skip to content

Commit 5e0720e

Browse files
Merge pull request lingcoder#5 from LingCoder/master
同步更新
2 parents 8e53689 + a448f1b commit 5e0720e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+15578
-1641
lines changed

README.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,28 +35,28 @@
3535
- [x] [第十三章 函数式编程](docs/book/13-Functional-Programming.md)
3636
- [x] [第十四章 流式编程](docs/book/14-Streams.md)
3737
- [x] [第十五章 异常](docs/book/15-Exceptions.md)
38-
- [ ] [第十六章 代码校验](docs/book/16-Validating-Your-Code.md)
39-
- [ ] [第十七章 文件](docs/book/17-Files.md)
38+
- [x] [第十六章 代码校验](docs/book/16-Validating-Your-Code.md)
39+
- [x] [第十七章 文件](docs/book/17-Files.md)
4040
- [x] [第十八章 字符串](docs/book/18-Strings.md)
41-
- [ ] [第十九章 类型信息](docs/book/19-Type-Information.md)
42-
- [ ] [第二十章 泛型](docs/book/20-Generics.md)
43-
- [ ] [第二十一章 数组](docs/book/21-Arrays.md)
41+
- [x] [第十九章 类型信息](docs/book/19-Type-Information.md)
42+
- [x] [第二十章 泛型](docs/book/20-Generics.md)
43+
- [x] [第二十一章 数组](docs/book/21-Arrays.md)
4444
- [x] [第二十二章 枚举](docs/book/22-Enumerations.md)
4545
- [x] [第二十三章 注解](docs/book/23-Annotations.md)
4646
- [ ] [第二十四章 并发编程](docs/book/24-Concurrent-Programming.md)
4747
- [ ] [第二十五章 设计模式](docs/book/25-Patterns.md)
4848
- [x] [附录:补充](docs/book/Appendix-Supplements.md)
4949
- [x] [附录:编程指南](docs/book/Appendix-Programming-Guidelines.md)
50-
- [ ] [附录:文档注释](docs/book/Appendix-Javadoc.md)
50+
- [x] [附录:文档注释](docs/book/Appendix-Javadoc.md)
5151
- [ ] [附录:对象传递和返回](docs/book/Appendix-Passing-and-Returning-Objects.md)
52-
- [ ] [附录:流式IO](docs/book/Appendix-IO-Streams.md)
53-
- [ ] [附录:标准IO](docs/book/Appendix-Standard-IO.md)
52+
- [x] [附录:流式IO](docs/book/Appendix-IO-Streams.md)
53+
- [x] [附录:标准IO](docs/book/Appendix-Standard-IO.md)
5454
- [x] [附录:新IO](docs/book/Appendix-New-IO.md)
55-
- [ ] [附录:理解equals和hashCode方法](docs/book/Appendix-Understanding-equals-and-hashCode.md)
55+
- [x] [附录:理解equals和hashCode方法](docs/book/Appendix-Understanding-equals-and-hashCode.md)
5656
- [x] [附录:集合主题](docs/book/Appendix-Collection-Topics.md)
5757
- [x] [附录:并发底层原理](docs/book/Appendix-Low-Level-Concurrency.md)
5858
- [x] [附录:数据压缩](docs/book/Appendix-Data-Compression.md)
59-
- [ ] [附录:对象序列化](docs/book/Appendix-Object-Serialization.md)
59+
- [x] [附录:对象序列化](docs/book/Appendix-Object-Serialization.md)
6060
- [ ] [附录:静态语言类型检查](docs/book/Appendix-Benefits-and-Costs-of-Static-Type-Checking.md)
6161
- [x] [附录:C++和Java的优良传统](docs/book/Appendix-The-Positive-Legacy-of-C-plus-plus-and-Java.md)
6262
- [ ] [附录:成为一名程序员](docs/book/Appendix-Becoming-a-Programmer.md)
@@ -65,7 +65,7 @@
6565

6666
## 一起交流
6767

68-
交流群:721698221 <a target="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=4cb8bdc26879e544a0e1c2027305afef699029d5c0f314099a239b7c4f309c5f"><img border="0" src="https://raw.githubusercontent.com/LingCoder/OnJava8/master/docs/images/qqgroup.png" alt="OnJava8翻译交流" title="OnJava8翻译交流"></a>( 点击图标即可加入 )<br>
68+
交流群:721698221 <a target="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=4cb8bdc26879e544a0e1c2027305afef699029d5c0f314099a239b7c4f309c5f"><img border="0" src="https://raw.githubusercontent.com/LingCoder/OnJava8/master/docs/images/qqgroup.png" alt="OnJava8翻译交流" title="OnJava8翻译交流"></a>( 点击图标即可加入 )<br> 加群时请简单备注下来源或说明
6969

7070
<div align="left">
7171
<img src="https://raw.githubusercontent.com/LingCoder/OnJava8/master/assets/QQGroupQRCode.png" alt="QQGroupQRCode"/>

docs/_coverpage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
</span>
1616

1717
[GitHub](https://github.com/lingcoder/onJava8/)
18-
[Get Started](README.md)
18+
[Get Started](sidebar.md)
1919

2020

2121

docs/_sidebar.md

Lines changed: 0 additions & 392 deletions
This file was deleted.

docs/book/00-Introduction.md

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,11 @@ Java 语言曾规划设计的许多功能并未按照承诺兑现。本书中,
1717

1818
编程的过程就是复杂性管理的过程:业务问题的复杂性,以及依赖的计算机的复杂性。由于这种复杂性,我们的大多数软件项目都失败了。
1919

20-
许多语言设计决策时都考虑到了复杂性,并试图降低语言的复杂性,但在设计过程中遇到了一些更棘手的问题,最终导致语言设计不可避免地“碰壁”,复杂性增加。例如,C++ 必须向后兼容 C(允许 C 程序员轻松迁移),并且效率很高。这些目标非常实用,并且也是 C++ 在编程界取得了成功的原因之一,但同时也引入了额外的复杂性,导致某些用C++编写的项目开发失败。当然,你可以责怪程序员和管理人员手艺不精,但如果有一种编程语言可以帮助你在开发过程中发现错误,那岂不是更好?
20+
许多语言设计决策时都考虑到了复杂性,并试图降低语言的复杂性,但在设计过程中遇到了一些更棘手的问题,最终导致语言设计不可避免地“碰壁”,复杂性增加。例如,C++ 必须向后兼容 C(允许 C 程序员轻松迁移),并且效率很高。这些目标非常实用,并且也是 C++ 在编程界取得了成功的原因之一,但同时也引入了额外的复杂性,导致某些用 C++ 编写的项目开发失败。当然,你可以责怪程序员和管理人员手艺不精,但如果有一种编程语言可以帮助你在开发过程中发现错误,那岂不是更好?
2121

2222
虽然 VB(Visual BASIC)绑定在 BASIC 上,但 BASIC 实际上并不是一种可扩展的语言。大量扩展的堆积造成 VB 的语法难以维护。Perl 向后兼容 awk、sed、grep 以及其它要替换的 Unix 工具。因此它常常被诟病产生了一堆“只写代码”(*write-only code*,写代码的人自己都看不懂的代码)。另一方面,C ++,VB,Perl 和其他语言(如 SmallTalk)在设计时重点放在了对某些复杂问题的处理上,因而在解决这些特定类型的问题方面非常成功。
2323

24-
通信革命使我们相互沟通更加便利。无论是一对一沟通,还是团队里的互相沟通,甚至是地球上不同地区的沟通。据说下一次革命需要的是一种全球性的思维,这种思维源于足量的人以及足量相互连接。不我不知道 Java 是否能成为这场革命的工具之一,但至少这种可能性让我觉得:我现在正在做的传道授业的事情是有意义的!
25-
26-
27-
24+
通信革命使我们相互沟通更加便利。无论是一对一沟通,还是团队里的互相沟通,甚至是地球上不同地区的沟通。据说下一次革命需要的是一种全球性的思维,这种思维源于足量的人以及足量相互连接。我不知道 Java 是否能成为这场革命的工具之一,但至少这种可能性让我觉得:我现在正在做的传道授业的事情是有意义的!
2825

2926
## 前提条件
3027

@@ -36,21 +33,17 @@ Java 语言曾规划设计的许多功能并未按照承诺兑现。本书中,
3633

3734
- 控制语句(例如 **if**),循环结构(例如 **while**
3835

39-
4036
可能你已在学校、书籍或网络上了学过这些。只要你觉得对上述的编程基本概念熟悉,你就可以完成本书的学习。
4137

4238
你可以通过在 On Java 8 的网站上免费下载 《Think in C》来补充学习 Java 所需要的前置知识。本书介绍了 Java 语言的基本控制机制以及面对对象编程(OOP)的概念。在本书中我引述了一些 C/C++ 语言中的一些特性来帮助读者更好的理解 Java。毕竟 Java 是在它们的基础之上发明的,理解他们之间的区别,有助于读者更好地学习 Java。我会试图简化这些引述,尽量让没有 C/C++ 基础的读者也能很好地理解。
4339

44-
4540
## JDK文档
4641

4742
甲骨文公司已经提供了免费的标准 JDK 文档。除非有必要,否则本书中将不再赘述 API 相关的使用细节。使用浏览器来即时搜索最新最全的 JDK 文档好过翻阅本书来查找。只有在需要补充特定的示例时,我才会提供有关的额外描述。
4843

49-
5044
## C编程思想
5145

52-
*Thinking in C* 已经可以在 www.OnJava8.com 免费下载。Java 的基础语法是基于 C 语言的。*Thinking in C* 中有更适合初学者的编程基础介绍。 我已经委托 Chuck Allison 将这本 C 基础的书籍作为独立产品附赠于本书的 CD 中。希望大家在阅读本书时,都已具备了学习 Java 的良好基础。
53-
46+
*Thinking in C* 已经可以在 [www.OnJava8.com](https://archive.org/details/ThinkingInC) 免费下载。Java 的基础语法是基于 C 语言的。*Thinking in C* 中有更适合初学者的编程基础介绍。 我已经委托 Chuck Allison 将这本 C 基础的书籍作为独立产品附赠于本书的 CD 中。希望大家在阅读本书时,都已具备了学习 Java 的良好基础。
5447

5548
## 源码下载
5649

@@ -62,37 +55,32 @@ Java 语言曾规划设计的许多功能并未按照承诺兑现。本书中,
6255

6356
1. 允许编译源代码并将编译代码仅以可执行格式包含在个人和商业软件程序中。
6457

65-
2. 允许在课堂情况下使用源代码而不修改源代码,包括在演示材料中,前提是“On Java 8”一书被引用为原点。
58+
2. 允许在课堂情况下使用源代码而不修改源代码,包括在演示材料中,前提是 “On Java 8” 一书被引用为原点。
6659

6760
3. 可以通过以下方式获得将源代码合并到印刷媒体中的许可:MindView LLC,PO Box 969,Crested Butte,CO 81224 [email protected]
6861

6962
4. 源代码和文档的版权归 MindView LLC 所有。提供的源代码没有任何明示或暗示的担保,包括任何适销性,适用于特定用途或不侵权的默示担保。MindView LLC 不保证任何包含源代码的程序的运行不会中断或没有错误。MindView LLC 不对任何目的的源代码或包含源代码的任何软件的适用性做出任何陈述。包含源代码的任何程序的质量和性能的全部风险来自源代码的用户。用户理解源代码是为研究和教学目的而开发的,建议不要仅仅因任何原因依赖源代码或任何包含源代码的程序。如果源代码或任何产生的软件证明有缺陷,则用户承担所有必要的维修,修理或更正的费用。
7063

7164
5. 在任何情况下,MINDVIEW LLC 或其出版商均不对任何一方根据任何法律理论对直接,间接,特殊,偶发或后果性损害承担任何责任,包括利润损失,业务中断,商业信息丢失或任何其他保险公司。由于 MINDVIEW LLC 或其出版商已被告知此类损害的可能性,因此使用本源代码及其文档或因无法使用任何结果程序而导致的个人受伤或者个人受伤。MINDVIEW LLC 特别声明不提供任何担保,包括但不限于对适销性和特定用途适用性的暗示担保。此处提供的源代码和文档基于“原样”基础,没有MINDVIEW LLC的任何随附服务,MINDVIEW LLC 没有义务提供维护,支持,更新,增强或修改。
7265

73-
7466
**请注意**,MindView LLC 仅提供以下唯一网址发布更新书中的代码示例,https://github.com/BruceEckel/OnJava8-examples 。你可在上述条款范围内将示例免费使用于项目和课堂中。
7567

7668
如果你在源代码中发现错误,请在下面的网址提交更正:https://github.com/BruceEckel/OnJava8-examples/issues
7769

78-
7970
## 编码样式
8071

81-
本书中代码标识符(关键字,方法,变量和类名)以粗体,固定宽度代码字体显示。像“*class”这种在代码中高频率出现的关键字可能让你觉得粗体有点乏味。(译者注:由于中英排版差异,中文翻译过程并未完全参照原作者的说明。具体排版格式请参考[此处](https://github.com/ruanyf/document-style-guide))其他显示为正常字体。本书文本格式尽可能遵循 Oracle 常见样式,并保证在大多数 Java 开发环境中被支持。书中我使用了自己喜欢的字体风格。Java 是一种自由的编程语言,你也可以使用 IDE(集成开发环境)工具(如 IntelliJ IDEA,Eclipse 或 NetBeans)将格式更改为适合你的格式。
82-
83-
本书代码文件使用自动化工具进行测试,并在最新版本的 Java 编译通过(除了那些特别标记的错误之外)。本书重点介绍并使用 Java 8 进行测试。如果你必须了解更早的语言版本,可以在 [www.OnJava8.com](http://www.OnJava8.com) 免费下载 《Thinking in Java》。
72+
本书中代码标识符(关键字,方法,变量和类名)以粗体,固定宽度代码字体显示。像 “*class” 这种在代码中高频率出现的关键字可能让你觉得粗体有点乏味。(译者注:由于中英排版差异,中文翻译过程并未完全参照原作者的说明。具体排版格式请参考[此处](https://github.com/ruanyf/document-style-guide))其他显示为正常字体。本书文本格式尽可能遵循 Oracle 常见样式,并保证在大多数 Java 开发环境中被支持。书中我使用了自己喜欢的字体风格。Java 是一种自由的编程语言,你也可以使用 IDE(集成开发环境)工具(如 IntelliJ IDEA,Eclipse 或 NetBeans)将格式更改为适合你的格式。
8473

74+
本书代码文件使用自动化工具进行测试,并在最新版本的 Java 编译通过(除了那些特别标记的错误之外)。本书重点介绍并使用 Java 8 进行测试。如果你必须了解更早的语言版本,可以在 [www.OnJava8.com](http://www.OnJava8.com) 免费下载 《Thinking in Java》。
8575

8676
## BUG提交
8777

8878
本书经过多重校订,但还是难免有所遗漏被新读者发现。如果你在正文或示例中发现任何错误的内容,请在[此处](https://github.com/BruceEckel/OnJava8-examples/issues)提交错误以及建议更正,作者感激不尽。
8979

90-
9180
## 邮箱订阅
9281

9382
你可以在 [www.OnJava8.com上](http://www.OnJava8.com) 订阅邮件。邮件不含广告并尽量提供干货。
9483

95-
9684
## Java图形界面
9785

9886
Java 在图形用户界面和桌面程序方面的发展可以说是一段悲伤的历史。Java 1.0 中图形用户界面(GUI)库的原始设计目标是让用户能在所有平台提供一个漂亮的界面。但遗憾的是,这个理想没有实现。相反,Java 1.0 AWT(抽象窗口工具包)在所有平台都表现平平,并且有诸多限制。你只能使用四种字体。另外,Java 1.0 AWT 编程模型也很笨拙且非面向对象。我的一个曾在 Java 设计期间工作过的学生道出了缘由:早期的 AWT 设计是在仅仅在一个月内构思、设计和实施的。不得不说这是一个“奇迹”,但同时更是“设计失败”的绝佳教材。

docs/book/00-On-Java-8.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353

5454
本书出版自美国,版权所有,翻版必究。未经授权不得非法存储在检索系统中,或以电子,机械,影印,录制任何形式传输等。制造商和销售商使用商标用来区分其产品标识。如果这些名称出现在这本书中,并且出版商知道商标要求,则这些名称已经用大写字母或所有大写字母打印。
5555

56-
Java 是甲骨文公司(Oracle. Inc.)的商标。Windows 95,Windows NT,Windows 2000,Windows XP,Windows 7,Windows 8和 Windows 10是微软公司(Microsoft Corporation)的商标。
56+
Java 是甲骨文公司(Oracle. Inc.)的商标。Windows 95,Windows NT,Windows 2000,Windows XP,Windows 7,Windows 8 和 Windows 10 是微软公司(Microsoft Corporation)的商标。
5757
此处提及的所有其他产品名称和公司名称均为其各自所有者的财产。作者和出版商在编写本书时已经仔细校对过,但不作任何明示或暗示的保证,对错误或遗漏不承担任何责任。对于因使用此处包含的信息或程序而产生的偶然或间接损失,我们不承担任何责任。
5858

5959
这本书是以平板电脑和计算机为载体的电子书,非传统纸质版书籍。

0 commit comments

Comments
 (0)