From 512278dcd637865738c5135ffa83ef796d8b1f05 Mon Sep 17 00:00:00 2001 From: maskleo Date: Mon, 23 Apr 2018 20:35:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 12 ++++++++++-- ch06/01_Reifiable_Types.md | 2 +- ch06/02_Instance_Tests_and_Casts.md | 2 +- ch06/03_Exception_Handling.md | 2 +- ch06/04_Array_Creation.md | 2 +- ch06/05_The_Principle_of_Truth_in_Advertising.md | 2 +- ch06/06_The_Principle_of_Indecent_Exposure.md | 2 +- ch06/07_How_to_Define_ArrayList.md | 2 +- ch14/00_Queues.md | 2 +- ch14/01_Using_the_Methods_of_Queue.md | 2 +- 10 files changed, 19 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 8ef71243..d9770473 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ * [前言](Preface.md) * [第一部分:泛型](ch01/00_Introduction.md) * [第一章(简介)](ch01/00_Introduction.md#第一章(简介)) - * [1.1 泛型](ch01/01_Generics.md#泛型) + * [1.1 泛型](ch01/01_Generics.md#泛型) * [1.2 装箱与拆箱](ch01/02_Boxing_and_Unboxing.md#装箱与拆箱) * [1.3 循环](ch01/03_Foreach.md#循环) * [1.4 泛型方法和可变参数](ch01/04_Generic_Methods_and_Varargs.md#泛型方法和可变参数) @@ -38,7 +38,7 @@ * [3.6 多重界限](ch03/06_Multiple_Bounds.md) * [3.7 桥梁](ch03/07_Bridges.md) * [3.8 协变覆盖](ch03/08_Covariant_Overriding.md) - * [第四章(声明)](ch04/00_Declarations.md) + * [第四章(声明)](ch04/00_Declarations.md) * [4.1 构造函数](ch04/01_Constructors.md) * [4.2 静态成员](ch04/02_Static_Members.md) * [4.3 嵌套类](ch04/03_Nested_Classes.md) @@ -49,6 +49,14 @@ * [5.3 具有传统客户端的通用库](ch05/03_Generic_Library_with_Legacy_Client.md) * [5.4 具有通用客户端的旧版库](ch05/04_Legacy_Library_with_Generic_Client.md) * [5.5 结论](ch05/05_Conclusions.md) + * [第六章(具体化)](ch06/00_Reification.md) + * [6.1 可定义类型](ch06/01_Reifiable_Types.md) + * [6.2 实例测试和示例](ch06/02_Instance_Tests_and_Casts.md) + * [6.3 异常处理](ch06/03_Exception_Handling.md) + * [6.4 数组创建](ch06/04_Array_Creation.md) + * [6.5 广告中的真理原则](ch06/05_The_Principle_of_Truth_in_Advertising.md) + * [6.6 不雅暴露的原则](ch06/06_The_Principle_of_Indecent_Exposure.md) + * [6.7 如何定义 ArrayList](ch06/07_How_to_Define_ArrayList.md)     ## PR 提交 PR 前请先确认排版,示例: [中文文案排版](https://github.com/maskleo-doc/chinese-copywriting-guidelines) diff --git a/ch06/01_Reifiable_Types.md b/ch06/01_Reifiable_Types.md index d528d930..bdeb1510 100644 --- a/ch06/01_Reifiable_Types.md +++ b/ch06/01_Reifiable_Types.md @@ -1,7 +1,7 @@ 《《《 [返回首页](../README.md)
《《《 [上一节](00_Reification.md) -## 可定义类型 +### 可定义类型 在 `Java` 中,数组的类型是用其组件类型来表示的,而参数化类型的类型是在没有其类型参数的情况下被指定的。 例如,一个数组的数组将带有指定类型 `Number []`,而一个数字列表将带有指定类型 `ArrayList`,而不是 `ArrayList`; 原始类型,而不是参数化类型被通用化。 当然,列表中的每个元素都会附 diff --git a/ch06/02_Instance_Tests_and_Casts.md b/ch06/02_Instance_Tests_and_Casts.md index 8aed3dcc..5122d713 100644 --- a/ch06/02_Instance_Tests_and_Casts.md +++ b/ch06/02_Instance_Tests_and_Casts.md @@ -1,7 +1,7 @@ 《《《 [返回首页](../README.md)
《《《 [上一节](01_Reifiable_Types.md) -## 实例测试和示例 +### 实例测试和示例 实例测试和示例取决于运行时检查的类型,因此取决于具体化。 因此,针对不可修饰类型的实例测试会报告错误,并且对不可修饰类型进行强制转换通常会发出警告。 diff --git a/ch06/03_Exception_Handling.md b/ch06/03_Exception_Handling.md index 14fe53f1..bbc9ecf8 100644 --- a/ch06/03_Exception_Handling.md +++ b/ch06/03_Exception_Handling.md @@ -1,7 +1,7 @@ 《《《 [返回首页](../README.md)
《《《 [上一节](02_Instance_Tests_and_Casts.md) -## 异常处理 +### 异常处理 在 `try` 语句中,每个 `catch` 子句检查抛出的异常是否与给定的类型匹配。 这与实例测试执行的检查相同,因此也适用相同的限制:该类型必须是可验证的。 此 外,`catch` 子句中的类型必须是 `Throwable` 的子类。 由于创建不能出现在 `catch` 子句中的 `Throwable` 的子类没什么意义,因此如果您尝试创建 diff --git a/ch06/04_Array_Creation.md b/ch06/04_Array_Creation.md index 37da4b38..73ac6d2a 100644 --- a/ch06/04_Array_Creation.md +++ b/ch06/04_Array_Creation.md @@ -1,7 +1,7 @@ 《《《 [返回首页](../README.md)
《《《 [上一节](03_Exception_Handling.md) -## 数组创建 +### 数组创建 数组通过它们的组件类型来进行通用化,这意味着它们携带有关组件类型的运行时信息。 此实体类型信息用于实例测试和强制转换,还用于检查是否允许分配到数组组 件。 diff --git a/ch06/05_The_Principle_of_Truth_in_Advertising.md b/ch06/05_The_Principle_of_Truth_in_Advertising.md index c4e227ff..19a4be08 100644 --- a/ch06/05_The_Principle_of_Truth_in_Advertising.md +++ b/ch06/05_The_Principle_of_Truth_in_Advertising.md @@ -1,7 +1,7 @@ 《《《 [返回首页](../README.md)
《《《 [上一节](04_Array_Creation.md) -## 广告中的真理原则 +### 广告中的真理原则 在前面的章节中我们看到,将集合转换为数组的简单方法将不起作用。 我们可能会尝试的第一个解决方案是添加一个未经检查的演员表,但我们很快会看到,这导致更令 人困惑的问题。 正确的解决方案需要我们去反思。 由于将任何泛型结构转换为数组时都会出现相同的问题,因此值得了解这些问题及其解决方案。 我们将研究上一节中 diff --git a/ch06/06_The_Principle_of_Indecent_Exposure.md b/ch06/06_The_Principle_of_Indecent_Exposure.md index 42a1c8e2..eae789d8 100644 --- a/ch06/06_The_Principle_of_Indecent_Exposure.md +++ b/ch06/06_The_Principle_of_Indecent_Exposure.md @@ -1,7 +1,7 @@ 《《《 [返回首页](../README.md)
《《《 [上一节](05_The_Principle_of_Truth_in_Advertising.md) -## 不雅暴露的原则 +### 不雅暴露的原则 尽管创建一个不可赋予的组件类型的数组是错误的,但可以声明一个具有这种类型的数组,并对此类型执行未经检查的转换。 必须谨慎使用这些功能,如果使用不当,有 必要了解可能出现的问题。 特别是,一个库不应公开公开一个具有不可确定类型的数组。 diff --git a/ch06/07_How_to_Define_ArrayList.md b/ch06/07_How_to_Define_ArrayList.md index d4daf1b0..3c07cd26 100644 --- a/ch06/07_How_to_Define_ArrayList.md +++ b/ch06/07_How_to_Define_ArrayList.md @@ -1,7 +1,7 @@ 《《《 [返回首页](../README.md)
《《《 [上一节](06_The_Principle_of_Indecent_Exposure.md) -## 如何定义 ArrayList +### 如何定义 ArrayList 我们在其他地方争辩说,通常最好使用列表而不是使用数组。有一些地方这不合适。在极少数情况下,出于效率或兼容性的原因,您将需要使用数组。另外,当然,你需要使 用数组来实现 `ArrayList` 本身。在这里,我们将 `ArrayList` 的实现作为一种模型,在极少情况下需要使用数组。这些实现需要谨慎编写,因为它们必然涉及使用未经 diff --git a/ch14/00_Queues.md b/ch14/00_Queues.md index b61f5af5..5cbb25d8 100644 --- a/ch14/00_Queues.md +++ b/ch14/00_Queues.md @@ -1,7 +1,7 @@ 《《《 [返回首页](../README.md)
《《《 [上一节](../ch13/02_SortedSet_and_NavigableSet.md) -# Queues +## Queues 队列是一个集合,用于保存要处理的元素,并按照它们要处理的顺序生成它们。相应的集合框架接口队列(参见图 `14-1`)有许多不同的实现,它们体现了关于这个顺序应该是什么的不同规则。许多实现使用的规则是按照提交顺序处理任务(先进先出或 `FIFO`),但也可以使用其他规则 - 例如,集合框架包括处理顺序为基于任务优先级。`Queue` 接口是在 `Java 5` 中引入的,部分原因是该版本中包含的并发实用程序中需要队列。看一下图 `14-2` 所示的实现层次结构,事实上,集合框架中几乎所有的 `Queue` 实现都在 `java.util.concurrent` 包中。 diff --git a/ch14/01_Using_the_Methods_of_Queue.md b/ch14/01_Using_the_Methods_of_Queue.md index ef6c559b..19d58282 100644 --- a/ch14/01_Using_the_Methods_of_Queue.md +++ b/ch14/01_Using_the_Methods_of_Queue.md @@ -1,7 +1,7 @@ 《《《 [返回首页](../README.md)
《《《 [上一节](00_Queues.md) -## 使用队列方法 +### 使用队列方法 我们来看看使用这些方法的例子。 队列应该提供一个实现任务管理器的好方法,因为它们的主要目的是生成要处理的元素,比如任务。 目前我们将使用 `ArrayDeque` 作为队列中最快和最直接的实现(当然也是 `Deque`)。 但是,像以前一样,我们只限于接口的方法 - 尽管您应该注意到,在选择队列实现时,您也正在选择一种排序。使用 `ArrayDeque`,您可以获得 `FIFO` 订购 - 当然,我们尝试使用花哨的调度方法进行组织,似乎无法很好地工作; 也许是时候尝试一些简单的事情了。 From 202ab2d3c66521bb6f9d12bd836cda052dd3c4ab Mon Sep 17 00:00:00 2001 From: maskleo Date: Mon, 23 Apr 2018 20:40:01 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=AC=AC=E5=85=AD=E7=AB=A0=E8=8F=9C?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +++ ch06/08_Array_Creation_and_Varargs.md | 2 +- ch06/09_Arrays_as_a_Deprecated_Type.md | 2 +- ch06/10_Summing_Up.md | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d9770473..16adcb79 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,9 @@ * [6.5 广告中的真理原则](ch06/05_The_Principle_of_Truth_in_Advertising.md) * [6.6 不雅暴露的原则](ch06/06_The_Principle_of_Indecent_Exposure.md) * [6.7 如何定义 ArrayList](ch06/07_How_to_Define_ArrayList.md) + * [6.8 数组创建和可变参数](ch06/08_Array_Creation_and_Varargs.md) + * [6.9 作为已弃用类型的阵列](ch06/09_Arrays_as_a_Deprecated_Type.md) + * [6.10 加起来](ch06/10_Summing_Up.md)     ## PR 提交 PR 前请先确认排版,示例: [中文文案排版](https://github.com/maskleo-doc/chinese-copywriting-guidelines) diff --git a/ch06/08_Array_Creation_and_Varargs.md b/ch06/08_Array_Creation_and_Varargs.md index 6f2bfbc2..ec9a1bf4 100644 --- a/ch06/08_Array_Creation_and_Varargs.md +++ b/ch06/08_Array_Creation_and_Varargs.md @@ -1,7 +1,7 @@ 《《《 [返回首页](../README.md)
《《《 [上一节](07_How_to_Define_ArrayList.md) -## 数组创建和可变参数 +### 数组创建和可变参数 方便的变量表示法允许方法接受可变数量的参数并将它们打包到数组中,如 `1.4` 节所述。 这种表示法并不像你想要的那样方便,因为它创建的数组受到与其他数组相 同的涉及到物化的问题的困扰。 diff --git a/ch06/09_Arrays_as_a_Deprecated_Type.md b/ch06/09_Arrays_as_a_Deprecated_Type.md index a4b00750..8af7bf1e 100644 --- a/ch06/09_Arrays_as_a_Deprecated_Type.md +++ b/ch06/09_Arrays_as_a_Deprecated_Type.md @@ -1,7 +1,7 @@ 《《《 [返回首页](../README.md)
《《《 [上一节](08_Array_Creation_and_Varargs.md) -## 作为已弃用类型的阵列? +### 作为已弃用类型的阵列 我们已经看到,在许多方面集合优于数组: diff --git a/ch06/10_Summing_Up.md b/ch06/10_Summing_Up.md index 05ab2dc5..f5e27982 100644 --- a/ch06/10_Summing_Up.md +++ b/ch06/10_Summing_Up.md @@ -1,7 +1,7 @@ 《《《 [返回首页](../README.md)
《《《 [上一节](09_Arrays_as_a_Deprecated_Type.md) -## 加起来 +### 加起来 我们通过给出需要或推荐可评估类型的地方的清单来得出结论。