Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 614d292

Browse files
authored
Merge pull request #18 from zerotoneorg/gh-pages-1.0
Gh pages 1.0
2 parents 9f16713 + 609ea79 commit 614d292

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

+131
-75
lines changed

‎README.md

Lines changed: 91 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
将利用碎片时间进行整理和校对,完整的时间段适合做其他需要大量思考的事,如果你有兴趣欢迎提交PR。
88

99
## TODO
10-
- 目录完善
1110
- 数据校对
1211

1312
## 目录
@@ -28,43 +27,100 @@
2827
* [2.5 数组](hc02/05_Arrays.md#数组)
2928
* [2.6 通配符与类型参数](ch02/06_Wildcards_Versus_Type_Parameters.md#通配符与类型参数)
3029
* [2.7 通配符捕获](ch02/07_Wildcard_Capture.md#通配符捕获)
31-
* [2.8 对通配符的限制](ch02/08_Restrictions_on_Wildcards.md)
32-
* [第三章(集合类)](ch03/00_Comparison_and_Bounds.md)
33-
* [3.1 可比较的](ch03/01_Comparable.md)
34-
* [3.2 集合的最大值](ch03/02_Maximum_of_a_Collection.md)
35-
* [3.3 水果相关示例](ch03/03_A_Fruity_Example.md)
36-
* [3.4 比较](ch03/04_Comparator.md)
37-
* [3.5 枚举类型](ch03/05_Enumerated_Types.md)
38-
* [3.6 多重界限](ch03/06_Multiple_Bounds.md)
39-
* [3.7 桥梁](ch03/07_Bridges.md)
40-
* [3.8 协变覆盖](ch03/08_Covariant_Overriding.md)
41-
* [第四章(声明)](ch04/00_Declarations.md)
42-
* [4.1 构造函数](ch04/01_Constructors.md)
43-
* [4.2 静态成员](ch04/02_Static_Members.md)
44-
* [4.3 嵌套类](ch04/03_Nested_Classes.md)
45-
* [4.4 擦除的工作原理](ch04/04_How_Erasure_Works.md)
46-
* [第五章(进化,而不是革命)](ch05/00_Evolution_Not_Revolution.md)
47-
* [5.1 旧版客户端的旧版库](ch05/01_Legacy_Library_with_Legacy_Client.md)
48-
* [5.2 具有通用客户端的通用库](ch05/02_Generic_Library_with_Generic_Client.md)
49-
* [5.3 具有传统客户端的通用库](ch05/03_Generic_Library_with_Legacy_Client.md)
50-
* [5.4 具有通用客户端的旧版库](ch05/04_Legacy_Library_with_Generic_Client.md)
51-
* [5.5 结论](ch05/05_Conclusions.md)
52-
* [第六章(具体化)](ch06/00_Reification.md)
53-
* [6.1 可定义类型](ch06/01_Reifiable_Types.md)
54-
* [6.2 实例测试和示例](ch06/02_Instance_Tests_and_Casts.md)
55-
* [6.3 异常处理](ch06/03_Exception_Handling.md)
56-
* [6.4 数组创建](ch06/04_Array_Creation.md)
57-
* [6.5 广告中的真理原则](ch06/05_The_Principle_of_Truth_in_Advertising.md)
58-
* [6.6 不雅暴露的原则](ch06/06_The_Principle_of_Indecent_Exposure.md)
59-
* [6.7 如何定义 ArrayList](ch06/07_How_to_Define_ArrayList.md)
60-
* [6.8 数组创建和可变参数](ch06/08_Array_Creation_and_Varargs.md)
61-
* [6.9 作为已弃用类型的阵列](ch06/09_Arrays_as_a_Deprecated_Type.md)
62-
* [6.10 加起来](ch06/10_Summing_Up.md)
63-
30+
* [2.8 对通配符的限制](ch02/08_Restrictions_on_Wildcards.md#对通配符的限制)
31+
* [第三章(集合类)](ch03/00_Comparison_and_Bounds.md#集合类)
32+
* [3.1 可比较的](ch03/01_Comparable.md#可比较的)
33+
* [3.2 集合的最大值](ch03/02_Maximum_of_a_Collection.md#集合的最大值)
34+
* [3.3 水果相关示例](ch03/03_A_Fruity_Example.md#水果相关示例)
35+
* [3.4 比较](ch03/04_Comparator.md#比较)
36+
* [3.5 枚举类型](ch03/05_Enumerated_Types.md#枚举类型)
37+
* [3.6 多重界限](ch03/06_Multiple_Bounds.md#多重界限)
38+
* [3.7 桥梁](ch03/07_Bridges.md#桥梁)
39+
* [3.8 协变覆盖](ch03/08_Covariant_Overriding.md#协变覆盖)
40+
* [第四章(声明)](ch04/00_Declarations.md#声明)
41+
* [4.1 构造函数](ch04/01_Constructors.md#构造函数)
42+
* [4.2 静态成员](ch04/02_Static_Members.md#静态成员)
43+
* [4.3 嵌套类](ch04/03_Nested_Classes.md#嵌套类)
44+
* [4.4 擦除的工作原理](ch04/04_How_Erasure_Works.md#擦除的工作原理)
45+
* [第五章(进化,而不是革命)](ch05/00_Evolution_Not_Revolution.md#进化,而不是革命)
46+
* [5.1 旧版客户端的旧版库](ch05/01_Legacy_Library_with_Legacy_Client.md#旧版客户端的旧版库)
47+
* [5.2 具有通用客户端的通用库](ch05/02_Generic_Library_with_Generic_Client.md#具有通用客户端的通用库)
48+
* [5.3 具有传统客户端的通用库](ch05/03_Generic_Library_with_Legacy_Client.md#具有传统客户端的通用库)
49+
* [5.4 具有通用客户端的旧版库](ch05/04_Legacy_Library_with_Generic_Client.md#具有通用客户端的旧版库)
50+
* [5.5 结论](ch05/05_Conclusions.md#结论)
51+
* [第六章(具体化)](ch06/00_Reification.md#具体化)
52+
* [6.1 可定义类型](ch06/01_Reifiable_Types.md#可定义类型)
53+
* [6.2 实例测试和示例](ch06/02_Instance_Tests_and_Casts.md#实例测试和示例)
54+
* [6.3 异常处理](ch06/03_Exception_Handling.md#异常处理)
55+
* [6.4 数组创建](ch06/04_Array_Creation.md#数组创建)
56+
* [6.5 广告中的真理原则](ch06/05_The_Principle_of_Truth_in_Advertising.md#广告中的真理原则)
57+
* [6.6 不雅暴露的原则](ch06/06_The_Principle_of_Indecent_Exposure.md#不雅暴露的原则)
58+
* [6.7 如何定义ArrayList](ch06/07_How_to_Define_ArrayList.md#如何定义ArrayList)
59+
* [6.8 数组创建和可变参数](ch06/08_Array_Creation_and_Varargs.md#数组创建和可变参数)
60+
* [6.9 作为已弃用类型的阵列](ch06/09_Arrays_as_a_Deprecated_Type.md#作为已弃用类型的阵列)
61+
* [6.10 加起来](ch06/10_Summing_Up.md#加起来)
62+
* [第七章(反射)](ch07/00_Reflection.md#反射)
63+
* [7.1 反射的泛型](ch07/01_Generics_for_Reflection.md#反射的泛型)
64+
* [7.2 反射类型是可维持类型](ch07/02_Reflected_Types_are_Reifiable_Types.md#反射类型是可维持类型)
65+
* [7.3 对原始类型的反思](ch07/03_Reflection_for_Primitive_Types.md#对原始类型的反思)
66+
* [7.4 一个通用的反射库](ch07/04_A_Generic_Reflection_Library.md#一个通用的反射库)
67+
* [7.5 泛型的反思](ch07/05_Reflection_for_Generics.md#泛型的反思)
68+
* [7.6 反思泛型类型](ch07/06_Reflecting_Generic_Types.md#反思泛型类型)
69+
* [第八章(有效的泛型)](ch08/00_Effective_Generics.md#有效的泛型)
70+
* [8.1 调用遗留代码时要小心](ch08/01_Take_Care_when_Callin_Legacy_Code.md#调用遗留代码时要小心)
71+
* [8.2 使用选中的集合来强化安全性](ch08/02_Use_Checked_Collections_to_Enforce_Security.md#使用选中的集合来强化安全性)
72+
* [8.3 专注于创建可维持类型](ch08/03_Specialize_to_Create_Reifiable_Types.md#专注于创建可维持类型)
73+
* [8.4 保持二进制兼容性](ch08/04_Maintain_Binary_Compatibility.md#保持二进制兼容性)
74+
* [第九章(设计模式)](ch09/00_Design_Patterns.md#设计模式)
75+
* [9.1 游客](ch09/01_Visitor.md#游客)
76+
* [9.2 翻译员](ch09/02_Interpreter.md#翻译员)
77+
* [9.3 功能](ch09/03_Function.md#功能)
78+
* [9.4 策略](ch09/04_Strategy.md#策略)
79+
* [9.5 主题观察者](ch09/05_Subject-Observer.md#主题观察者)
80+
* [第二部分:集合](ch10/00_Collections.md#集合)
81+
* [第十章(集合)](ch10/00_Collections.md#集合)
82+
* [10.1 Java集合框架的主要接口](ch10/01_The_Main_Interfaces_of_the_Java.md#Java集合框架的主要接口)
83+
* [第十一章(初步措施)](ch11/00_Preliminaries.md#初步措施)
84+
* [11.1 可迭代和迭代器](ch11/01_Iterable_and_Iterators.md)
85+
* [11.2 实现](ch11/02_Implementations.md)
86+
* [11.3 效率与Ο符号](ch11/03_Efficiency_and_the_O-Notation.md#效率与Ο符号)
87+
* [11.4 契约](ch11/04_contract.md#契约)
88+
* [11.5 集合和线程安全](ch11/05_Collections_and_Thread_Safety.md#集合和线程安全)
89+
* [第十二章(集合接口)](ch12/00_The_Collection_Interface.md#集合接口)
90+
* [12.1 使用集合方法](ch12/01_Using_the_Methods_of_Collection.md#使用集合方法)
91+
* [12.2 集合实现](ch12/02_Implementing_Collection.md#集合实现)
92+
* [12.3 集合构造函数](ch12/03_Collection_Constructors.md#集合构造函数)
93+
* [第十三章(Sets)](ch13/00_Sets.md#Sets)
94+
* [13.1 实现Set](ch13/01_Implementing_Set.md#实现Set)
95+
* [13.2 SortedSet和NavigableSet](ch13/02_SortedSet_and_NavigableSet.md#SortedSet和NavigableSet)
96+
* [第十四章(Queues)](ch14/00_Queues.md#Queues)
97+
* [14.1 使用队列方法](ch14/01_Using_the_Methods_of_Queue.md#使用队列方法)
98+
* [14.2 队列的实现](ch14/02_Implementing_Queue.md#队列的实现)
99+
* [14.3 BlockingQueue](ch14/03_BlockingQueue.md#BlockingQueue)
100+
* [14.4 Deque](ch14/04_Deque.md#Deque)
101+
* [14.5 比较队列实现](ch14/05_Comparing_Queue_Implementations.md#比较队列实现)
102+
* [第十五章(Lists)](ch15/00_Lists.md#Lists)
103+
* [15.1 使用List的方法](ch15/01_Using_the_Methods_of_List.md#使用List的方法)
104+
* [15.2 实现List](ch15/02_Implementing_List.md#实现List)
105+
* [15.3 比较List实现](ch15/03_Comparing_List_Implementations.md#比较List实现)
106+
* [第十六章(Maps)](ch16/00_Maps.md#Maps)
107+
* [16.1 使用Map的方法](ch16/01_Using_the_Methods_of_Map.md#使用Map的方法)
108+
* [16.2 实现Map](ch16/02_Implementing_Map.md#实现Map)
109+
* [16.3 SortedMap和NavigableMap](ch16/03_SortedMap_and_NavigableMap.md#SortedMap和NavigableMap)
110+
* [16.4 ConcurrentMap](ch16/04_ConcurrentMap.md#ConcurrentMap)
111+
* [16.5 ConcurrentNavigableMap](ch16/05_ConcurrentNavigableMap.md#ConcurrentNavigableMap)
112+
* [16.6 比较Map的实现](ch16/06_Comparing_Map_Implementations.md#比较Map的实现)
113+
* [第十七章(集合类)](ch17/00_The_Collections_Class.md#集合类)
114+
* [17.1 通用算法](ch17/01_Generic_Algorithms.md#通用算法)
115+
* [17.2 收集工厂](ch17/02_Collection_Factories.md#收集工厂)
116+
* [17.3 包装](ch17/03_Wrappers.md#包装)
117+
* [17.4 其他方法](ch17/04_Other_Methods.md#其他方法)
118+
119+
64120
## PR
65121
提交 PR 前请先确认排版,示例: [中文文案排版](https://github.com/maskleo-doc/chinese-copywriting-guidelines)
66122

67123
## 高清英文版 PDF[下载](https://github.com/maskleo/Java-Generics-and-Collections/files/1634266/Java.pdf)
68124

69125
## LICENSE
70-
![](LICENSE.png)
126+
![](LICENSE.png)

‎ch06/07_How_to_Define_ArrayList.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
《《《 [返回首页](../README.md) <br/>
22
《《《 [上一节](06_The_Principle_of_Indecent_Exposure.md)
33

4-
### 如何定义 ArrayList
4+
### 如何定义ArrayList
55

66
我们在其他地方争辩说,通常最好使用列表而不是使用数组。有一些地方这不合适。在极少数情况下,出于效率或兼容性的原因,您将需要使用数组。另外,当然,你需要使
77
用数组来实现 `ArrayList` 本身。在这里,我们将 `ArrayList` 的实现作为一种模型,在极少情况下需要使用数组。这些实现需要谨慎编写,因为它们必然涉及使用未经

‎ch07/01_Generics_for_Reflection.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
《《《 [返回首页](../README.md) <br/>
22
《《《 [上一节](00_Reflection.md)
33

4-
## 反射的泛型
4+
### 反射的泛型
55

66
`Java` 支持自 `1.0` 版以来的反射以及 `1.1` 版以后的类文字。 它们的核心是 `Class` 类,它表示运行时对象类型的信息。 您可以编写一个类型,后跟 `.class` 作为文字,表示与该类型相对应的类标记,并且方法 `getClass` 在每个对象上定义并返回一个类标记,该标记表示该对象在运行时携带的特定类型信息。这里是一个例子:
77

‎ch07/02_Reflected_Types_are_Reifiable_Types.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
《《《 [返回首页](../README.md) <br/>
22
《《《 [上一节](01_Generics_for_Reflection.md)
33

4-
## 反射类型是可维持类型
4+
### 反射类型是可维持类型
55

66
反思使程序可以使用物化类型信息。 因此,必要的是,每个类别标记对应于可确定类型。 如果您尝试反映参数化类型,则会获得相应原始类型的指定信息:
77

‎ch07/03_Reflection_for_Primitive_Types.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
《《《 [返回首页](../README.md) <br/>
22
《《《 [上一节](02_Reflected_Types_are_Reifiable_Types.md)
33

4-
## 对原始类型的反思
4+
### 对原始类型的反思
55

66
`Java` 中的每种类型(包括基元类型和数组类型)都具有类文字和相应的类标记。
77

‎ch07/04_A_Generic_Reflection_Library.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
《《《 [返回首页](../README.md) <br/>
22
《《《 [上一节](03_Reflection_for_Primitive_Types.md)
33

4-
## 一个通用的反射库
4+
### 一个通用的反射库
55

66
正如我们所看到的,粗心使用未经检查的演员阵容可能会导致问题,例如违反广告中的真相原则或不雅暴露原则(参见第 `6.5` 节和第 `6.6` 节)。 最小化使用未经检查的强制转换的一种技术是将它们封装在库中。 该库可以仔细检查以确保其使用未经检查的强制转换是安全的,而调用该库的代码可以没有未经检查的强制转换。 `Sun` 正在考虑添加类似于这里描述的库方法。
77

‎ch07/05_Reflection_for_Generics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
《《《 [返回首页](../README.md) <br/>
22
《《《 [上一节](04_A_Generic_Reflection_Library.md)
33

4-
## 泛型的反思
4+
### 泛型的反思
55

66
泛型以两种方式改变反射库。 我们已经讨论了反射的泛型,其中 `Java` 为类 `Class<T>` 添加了一个类型参数。 我们现在讨论泛型的反射,其中 `Java` 添加了支
77
持访问泛型类型的方法和类。

‎ch07/06_Reflecting_Generic_Types.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
《《《 [返回首页](../README.md) <br/>
22
《《《 [上一节](05_Reflection_for_Generics.md)
33

4-
##反映泛型类型
4+
### 反思泛型类型
55

66
反射库提供了一个 `Type` 接口来描述一个通用类型。 有一个类实现了这个接口和四个其他接口来扩展它,对应于五种不同的类型:
77

‎ch08/01_Take_Care_when_Callin_Legacy_Code.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
《《《 [返回首页](../README.md) <br/>
22
《《《 [上一节](00_Effective_Generics.md)
33

4-
## 调用遗留代码时要小心
4+
### 调用遗留代码时要小心
55

66
正如我们所看到的,泛型类型在编译时被检查,而不是运行时。 通常,这正是我们想要的,因为在编译时检查会更早地报告错误,并且不会导致运行时开销。 但是,有时这可能不合适,因为我们无法确定编译时检查是否足够(比如说,因为我们将参数化类型的实例传递给旧客户端或我们不信任的客户端 ),还是因为我们在运行时需要关于类型的信息(比如说,因为我们需要一个可重用类型作为数组组件)。 一个托收集合通常会诀窍,如果不行,我们可以创建一个专门的类。 我们考虑本节中的已检查集合,下一节中的安全问题以及之后的部分中的专门类。
77

‎ch08/02_Use_Checked_Collections_to_Enforce_Security.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
《《《 [返回首页](../README.md) <br/>
22
《《《 [上一节](01_Take_Care_when_Callin_Legacy_Code.md)
33

4-
## 使用选中的集合来强化安全性
4+
### 使用选中的集合来强化安全性
55

66
请注意,通用类型提供的保证仅适用于没有未经检查的警告的情况。 这意味着泛型类型对于确保其他人编写的代码的安全性没有用处,因为您无法知道该代码是否在编译时引发未经检查的警告。
77

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /