diff --git a/docs/108.md b/docs/108.md
index 4c95c8cf52f471c9238909228b48c213533439b3..c2b73ec2777e52957b92505b8537a62fa7fb0a6e 100644
--- a/docs/108.md
+++ b/docs/108.md
@@ -77,7 +77,7 @@ public class FirstJunitTest {
}
```
-如果将此代码与实施 JUnit 之前的代码进行比较,将会有明显的变化,
+如果将此代码与实现 JUnit 之前的代码进行比较,将会有明显的变化,
1. 注释:@ Before,@ Test 和@After
2. 方法:setUp(),testPageTitle(),tearDown()
diff --git a/docs/187.md b/docs/187.md
index 7738aeff1c36030f95ed650f223a007964ef03d9..a15fe7a26c07031757a677b5ad0fac3e43681759 100644
--- a/docs/187.md
+++ b/docs/187.md
@@ -91,7 +91,7 @@ for (int i = 0; i < 1_000_000; i++) {
## 结论
-批处理仅有助于将数据高效地存储在数据库中。 如果要使用某种故障转移机制,则需要实施手动提交策略。
+批处理仅有助于将数据高效地存储在数据库中。 如果要使用某种故障转移机制,则需要实现手动提交策略。
[代码下载](https://github.com/JBTAdmin/Hibernate)
diff --git a/docs/191.md b/docs/191.md
index d40becfbefef7d13fdfe30fdcec072c7f09eb077..62a047b62bf4a8b43af46c75caf094a5e57f791e 100644
--- a/docs/191.md
+++ b/docs/191.md
@@ -59,7 +59,7 @@ Session session = sessionFactory.withOptions().tenantIdentifier( yourTenantIdent
### MultiTenantConnectionProvider
-要使用两个可用的多租户提供程序之一,我们需要配置 MultiTenantConnectionProvider。 在这种特殊情况下,这意味着我们必须自己实施。
+要使用两个可用的多租户提供程序之一,我们需要配置 MultiTenantConnectionProvider。 在这种特殊情况下,这意味着我们必须自己实现。
在本文的示例应用中,我添加了接口的最基本的实现。
diff --git a/docs/24.md b/docs/24.md
index 11e1cc0662ab4949e3c9c9f2b3dde4b59b005edb..a74196f34195f1b225b77684d80400fc9bd2ddd0 100644
--- a/docs/24.md
+++ b/docs/24.md
@@ -94,7 +94,7 @@ System.out.println("Value of the localVariable is-"+localVariable);
* 局部变量的长度没有限制。
* 如果变量名只有一个单词,则所有字符均应小写。
-### 子弹点
+### 重点
* 局部变量不能使用任何访问级别,因为它们仅存在于方法内部。
* `Final`是唯一可以应用于局部变量的非访问修饰符。
diff --git a/docs/37.md b/docs/37.md
index 4ed07363ae58fa378d313eb58f14742b79d4c735..430e89f3c4d43165b6d68f6e01298d3957122267 100644
--- a/docs/37.md
+++ b/docs/37.md
@@ -152,7 +152,7 @@ abstract class InterfaceExampleThree implements interfaceTwo {
}
```
-### 子弹点
+### 重点
* 接口是 100%抽象类(***隐式***)。 在 Java 8 之后,它不成立。
* 接口可以由任何继承树中的任何类实现。
diff --git a/docs/41.md b/docs/41.md
index 519dfd1f139d3018a784caec8e56621bb5f6c5b4..513c46b9cbb2de09c8f05e8464a9b2cc8ad63e17 100644
--- a/docs/41.md
+++ b/docs/41.md
@@ -111,10 +111,10 @@ Inside Static method
* **静态**修饰符可以应用于变量或方法,块或内部类。
* ***静态成员***仅属于 Class 而不是实例。
* 静态方法**无法访问***实例变量*。
-* 静态方法**不能替代*,因为它们是特定于类的,并且不属于实例。***
-* 可以将 ***重新定义为*** 静态方法。
+* 静态方法**不能替代**,因为它们是特定于类的,并且不属于实例。
+* 可以将***重新定义***静态方法。
* 如果一个类包含任何静态块,则仅当将该类加载到 JVM 中时,才执行该块。 创建多个实例不会多次运行静态块。 仅构造器将执行多次。
-* 如果调用 Class.forName(“ *class_name* ”),则将执行 Class 的静态块。
+* 如果调用`Class.forName("class_name")`,则将执行 Class 的静态块。
diff --git a/docs/43.md b/docs/43.md
index 49a921a3fb34dbd33e016ad854d2782e4ab7b846..cb38ecba9db4598d5d6a1fc2af51d00e29ce1bca 100644
--- a/docs/43.md
+++ b/docs/43.md
@@ -93,11 +93,13 @@ String [] strArray = {“ J”,“ B”,“ T”};
数组中的每个元素都有一个索引。 索引**从 0** 开始,这意味着数组中的第一个元素的索引为 0,第二个元素的索引为 1。这些索引号可用于访问数组中的特定元素。 相同的索引可用于在给定索引处设置数组中的值。
-String [] strArray = {“ J”,“ B”,“ T”}
-strArray [0] =“ CHANGED”;
-字符串 valueAtIndex = strArray [0];
+```java
+String[] strArray = {"J","B","T"};
+strArray[0] = "CHANGED";
+String valueAtIndex = strArray[0];
+```
-数组中的最后一个元素的索引号为( **size_of_the_array – 1** )。
+数组中的最后一个元素的索引号为(`size_of_the_array – 1`)。
## Java 阵列备忘单
diff --git a/docs/44.md b/docs/44.md
index 0d50c792370e6d566100839820ea93c1f7f85c57..2eae6810b204ce15864ba953c95b031c07a24301 100644
--- a/docs/44.md
+++ b/docs/44.md
@@ -15,14 +15,14 @@ Collection API 提供了一组接口供您选择,但同时也为您提供了
* [设置](https://javabeginnerstutorial.com/core-java-tutorial/set-collection-tutorial-for-java-beginners/)
* [SortedSet](https://javabeginnerstutorial.com/core-java-tutorial/sorted-set-collection-tutorial-for-java-beginners/ "Sorted Set Collection Tutorial for Java Beginners") (扩展集接口)
* NavigableSet(扩展 SortedSet)
-* [地图](https://javabeginnerstutorial.com/core-java-tutorial/map-collection-tutorial-for-java-beginners/)
- * [SortedMap](https://javabeginnerstutorial.com/core-java-tutorial/sorted-map-collection-tutorial-for-java-beginners/ "Sorted Map Collection Tutorial for Java Beginners") (扩展地图接口)
- * 可导航地图(扩展 SortedSet)
+* [映射](https://javabeginnerstutorial.com/core-java-tutorial/map-collection-tutorial-for-java-beginners/)
+ * [SortedMap](https://javabeginnerstutorial.com/core-java-tutorial/sorted-map-collection-tutorial-for-java-beginners/ "Sorted Map Collection Tutorial for Java Beginners") (扩展映射接口)
+ * 可导航映射(扩展 SortedSet)
* 队列
-## 实施类
+## 实现类
-### 1-地图
+### 1-映射
* [HashMap](https://javabeginnerstutorial.com/core-java-tutorial/java-collection-hashmap-hashtable/ "Java Collection Hashmap tutorial")
* 哈希表
@@ -139,7 +139,7 @@ List l = new ArrayList();
### 哈希集
-**Property**
+**属性**
* 未分类
* 无序
@@ -162,53 +162,53 @@ List l = new ArrayList();
## 并发收集接口
-* BlockingQueue **扩展了**队列
-* TransferQueue **扩展了** BlockingQueue
-* BlockingDeque **扩展了** BlockingQueue
-* ConcurrentMap **扩展了**地图
-
-## 并发收集实施
-
-* LinkedBlockingQueue **扩展了** AbstractQueue **实现了** BlockingQueue
-* ArrayBlockingQueue **扩展了** AbstractQueue **实现了** BlockingQueue
-* PriorityBlockingQueue **扩展了** AbstractQueue **实现了** BlockingQueue
-* DelayQueue **扩展了** AbstractQueue **实现了** BlockingQueue
-* SynchronousQueue **扩展了** AbstractQueue **实现了** BlockingQueue
-* LinkedBlockingDeque **扩展了** AbstractQueue **实现了** BlockingDeque
-* LinkedTransferQueue **扩展了** AbstractQueue **实现了** TransferQueue
-* CopyOnWriteArrayList **实现** List,RandomAccess
-* CopyOnWriteArraySet **扩展** AbstractSet
-* ConcurrentSkipListSet **扩展了** AbstractSet **实现了** NavigableSet
-* ConcurrentHashMap **扩展了** AbstractMap **实现了** ConcurrentMap
-* ConcurrentSkipListMap **扩展了** AbstractMap **实现了** ConcurrentNavigableMap
+* `BlockingQueue`**扩展了**`Queue`
+* `TransferQueue`**扩展了**`BlockingQueue`
+* `BlockingDeque`**扩展了**`BlockingQueue`
+* `ConcurrentMap`**扩展了**`Map`
+
+## 并发收集实现
+
+* `LinkedBlockingQueue`**扩展了**`AbstractQueue`**实现了**`BlockingQueue`
+* `ArrayBlockingQueue`**扩展了**`AbstractQueue`**实现了**`BlockingQueue`
+* `PriorityBlockingQueue`**扩展了**`AbstractQueue`**实现了**`BlockingQueue`
+* `DelayQueue`**扩展了**`AbstractQueue`**实现了**`BlockingQueue`
+* `SynchronousQueue`**扩展了**`AbstractQueue`**实现了**`BlockingQueue`
+* `LinkedBlockingDeque`**扩展了**`AbstractQueue`**实现了**`BlockingDeque`
+* `LinkedTransferQueue`**扩展了**`AbstractQueue`**实现了**`TransferQueue`
+* `CopyOnWriteArrayList`**实现**`List`,`RandomAccess`
+* `CopyOnWriteArraySet`**扩展**`AbstractSet`
+* `ConcurrentSkipListSet`**扩展了**`AbstractSet`**实现了**`NavigableSet`
+* `ConcurrentHashMap`**扩展了**`AbstractMap`**实现了**`ConcurrentMap`
+* `ConcurrentSkipListMap`**扩展了**`AbstractMap`**实现了**`ConcurrentNavigableMap`
## 可能有助于决定收藏类别的因素
为特定问题选择适当的集合时,可以考虑多种因素。 这些因素是:
-1. **排序**-元素中的某种排序。 例如,排序顺序,插入顺序或没有特定顺序。
-2. **重复项**-可能或可能不想在集合中允许重复的元素。
-3. **线程安全** -如果有多个线程访问集合,请确保集合中元素的安全。
-4. **键值对**-存储在键值对中。
-5. **阻塞操作**-检索元素时等待集合变为非空。
-6. **随机访问**-即时检索元素。
-7. **上限**-要限制集合可以容纳的最大元素数。
+1. **排序** - 元素中的某种排序。 例如,排序顺序,插入顺序或没有特定顺序。
+2. **重复项** - 可能或可能不想在集合中允许重复的元素。
+3. **线程安全** - 如果有多个线程访问集合,请确保集合中元素的安全。
+4. **键值对** - 存储在键值对中。
+5. **阻塞操作** - 检索元素时等待集合变为非空。
+6. **随机访问** - 即时检索元素。
+7. **上限** - 要限制集合可以容纳的最大元素数。
还有其他因素,例如优先级,延迟等。
## 备忘单
-1. ***集合*** 是存储对象的数据结构。
+1. ***集合***是存储对象的数据结构。
2. 可以添加,删除对象,也可以在集合中对其进行遍历。
3. 基本收藏有 4 种类型
-4. **列表**: **有序**,**允许**重复,已索引****
-5. **设置**:可以订购或可以不订购。 **不允许复制**。
-6. **映射:不允许使用**重复的**键。**
-7. **队列:按 **FIFO** 或**优先级对**进行排序。**
-8. **ArrayList**:快速迭代&快速随机访问。
-9. **矢量**:同步方法。
-10. **LinkedList**:适用于实现堆栈和队列。
-11. **哈希集**:快速访问,没有重复,没有排序。
-12. **LinkedHashSet**:没有重复,按插入顺序进行迭代。
-13. **TreeSet**:无重复,按排序顺序进行迭代。
+4. **列表**: **有序**,**允许**重复,已索引。
+5. **集**:可以有序或可以无序。 **不允许复制**。
+6. **映射**:不允许使用**重复的**键。
+7. **队列**:按 **FIFO** 或**优先级**进行排序。
+8. **`ArrayList`**:快速迭代&快速随机访问。
+9. **`Vector`**:同步方法。
+10. **`LinkedList`**:适用于实现堆栈和队列。
+11. **`HashSet`**:快速访问,没有重复,没有排序。
+12. **`LinkedHashSet`**:没有重复,按插入顺序进行迭代。
+13. **`TreeSet`**:无重复,按排序顺序进行迭代。
diff --git a/docs/46.md b/docs/46.md
index 73b45bce7db9a67b93733b97e48db80ec928a1a5..318e6abd6aa648508424261722efc51a518e5c53 100644
--- a/docs/46.md
+++ b/docs/46.md
@@ -9,11 +9,11 @@ Java HashMap 是基于 HashTable 的 Map 实现。 这就是为什么面试官
## HashMap 的重要属性
-| **DEFAULT_INITIAL_CAPACITY** | 默认初始容量(2 次幂 n)。 HashMap 可以包含许多元素。 |
-| **MAXIMUM_CAPACITY** | HashMap 的最大容量(2 次幂 n)。 |
-| **负载因子** | 定义 HashMap 的阈值。 重新调整大小时将在 HashMap 中发生。 |
-| **DEFAULT_LOAD_FACTOR** | 在 HashMap 的构造器中未定义任何负载因子时将使用。 |
-| **大小** | HashMap 包含的键/值对映射数。 |
+| **`DEFAULT_INITIAL_CAPACITY`** | 默认初始容量(2 次幂 n)。 HashMap 可以包含许多元素。 |
+| **`MAXIMUM_CAPACITY`** | HashMap 的最大容量(2 次幂 n)。 |
+| **`loadFactor`** | 定义 HashMap 的阈值。 重新调整大小时将在 HashMap 中发生。 |
+| **`DEFAULT_LOAD_FACTOR`** | 在 HashMap 的构造器中未定义任何负载因子时将使用。 |
+| **`size`** | HashMap 包含的键/值对映射数。 |
## 创建 HashMap
@@ -25,24 +25,24 @@ Java HashMap 是基于 HashTable 的 Map 实现。 这就是为什么面试官
为了添加一个元素,您需要提供 2 个东西:键和值。
-**键:将与指定值关联的**键。 **null** 是允许的。
+**键**:将与指定值关联的键。 `null`是允许的。
**值**:与指定键关联的值。
首先,HashMap 将为给定密钥生成一个哈希码,然后检查是否已经有与给定密钥相关联的值。 如果是,则它将返回已经关联的值。 否则,它将通过提供的键在 HashMap 中增加价值。
-## 子弹点
+## 重点
1. HashMap 不会按 Map 中的元素顺序提供任何保证(均值顺序会随时间变化)。
-2. HashMap 为**获得** & **设置**操作提供恒定时间性能(如果使用正确的哈希算法)。
-3. 迭代收集所需的时间与 HashMap 的“ **容量**”((它可以容纳的元素)& **大小**(它当前容纳的元素)成比例。
+2. HashMap 为**获得**和**设置**操作提供恒定时间性能(如果使用正确的哈希算法)。
+3. 迭代收集所需的时间与 HashMap 的“**容量**”((它可以容纳的元素)和**大小**(它当前容纳的元素)成比例。
4. 如果迭代性能更为重要,那么建议不要将初始容量设置得太高而将负载系数设置得太低。 由于性能与*初始容量*和*负载系数*成正比。
* *容量*是哈希表中的存储桶数。
* 初始容量(默认值为 16)只是创建哈希表时的容量。
- * *负载因子(默认值.75)*是衡量哈希表在自动增加其容量之前的填充程度的度量。
- * 当哈希表中的条目数超过负载因子与当前容量的乘积时,哈希表将被*重映射为*(即内部数据结构将被重建)。
-5. 使用“ **Collections.synchronizedMap()**”方法使地图同步。
-6. 由 HashMap 类返回的 迭代器为“ ***故障快速*** ”。
+ * *负载因子(默认值 .75)*是衡量哈希表在自动增加其容量之前的填充程度的度量。
+ * 当哈希表中的条目数超过负载因子与当前容量的乘积时,哈希表将被*重映射*(即内部数据结构将被重建)。
+5. 使用“`Collections.synchronizedMap()`”方法使地图同步。
+6. 由 HashMap 类返回的 迭代器为“***故障快速***”。
7. HashMap 由 Array(Key)和 LinkedList(Value)支持。
8. HashMap 使用 hashcode(使用密钥)来标识应在 HashMap 中放置或检索对象的确切位置。
9. 最后,HashCode 返回后备数组中的确切位置(索引)。
diff --git a/docs/48.md b/docs/48.md
index e97c3a6ee490f611fa5c387f641020103a26f7fa..d1b1b0c19354722f6dade57d977f0ab73ad1d38f 100644
--- a/docs/48.md
+++ b/docs/48.md
@@ -2,13 +2,13 @@
> 原文: [https://javabeginnerstutorial.com/core-java-tutorial/list-collection-tutorial-for-java-beginners/](https://javabeginnerstutorial.com/core-java-tutorial/list-collection-tutorial-for-java-beginners/)
-在这里,我们将详细了解 List 接口及其不同实现。 ***java.util*** 包中的列表接口是 java.util.Collection 接口的子类型。
+在这里,我们将详细了解 List 接口及其不同实现。 `java.util`包中的列表接口是 java.util.Collection 接口的子类型。
## 列出接口显着点
1. 它是 *java.util* 包的一部分。
2. 它是 *java.util.Collection* 接口的子类型。
-3. 列表是**有序集合。** 意味着可以按有序方式(按索引)访问 List 的元素。
+3. 列表是**有序集合**。 意味着可以按有序方式(按索引)访问 List 的元素。
4. 允许重复值。
5. 允许为 NULL 值。
6. List 有一个名为 ListIterator 的特殊迭代器。 这将有助于双向遍历列表。
@@ -78,7 +78,7 @@ listA.add(0, "element 0");
## 替换元素
-**Syntax : **E set(int index, E element);
+**语法**:E set(int index, E element);
**用途**:用于替换列表中指定位置的元素。
diff --git a/docs/49.md b/docs/49.md
index 7742ba0863ffb570d4bc4d60c57c22985815b597..fc251e070c1c072b4a9d4a6600441c17420acb1f 100644
--- a/docs/49.md
+++ b/docs/49.md
@@ -21,7 +21,7 @@ Map 是 Java Collection 框架下的一个 Interface。
* 一些地图实现可以包含的键和值有一些限制。
* 尝试插入不合格的键或值将引发非受检异常。
-# 具体地图实施
+# 具体地图实现
* HashMap
* 哈希表
@@ -36,13 +36,13 @@ Map 是 Java Collection 框架下的一个 Interface。
# 地图界面中的重要方法
-* **put(K 键,V 值)**:使用指定的键将指定的值放入映射中。
-* **putAll(Map <?扩展 K,?扩展 V > m)**:将所有映射从给定 Map 复制到此 Map。
-* **keySet()**:返回包含此映射中的密钥的**集**。
-* **values()**:返回一个**集合**,其中包含此 Map 中的所有值。
-* **isEmpty()**:检查给定 Map 中是否有任何元素。
-* **remove(Object key)**:从此映射中删除键的映射(如果存在)。
-* **containsKey(Object key)**:检查指定键是否存在任何映射。
-* **containsValue(Object value)**:检查是否存在用于指定 Object 的任何映射(可能不止一个)。
-* **get(Object key)**:返回与此键关联的值。
-* **clear() :** Used to remove all the mapping in given Map.
\ No newline at end of file
+* **`put(K key, V value)`**:使用指定的键将指定的值放入映射中。
+* **`putAll(Map extends K, ? extends V> m)`**:将所有映射从给定 Map 复制到此 Map。
+* **`keySet()`**:返回包含此映射中的密钥的**集**。
+* **`values()`**:返回一个**集合**,其中包含此 Map 中的所有值。
+* **`isEmpty()`**:检查给定 Map 中是否有任何元素。
+* **`remove(Object key)`**:从此映射中删除键的映射(如果存在)。
+* **`containsKey(Object key)`**:检查指定键是否存在任何映射。
+* **`containsValue(Object value)`**:检查是否存在用于指定 Object 的任何映射(可能不止一个)。
+* **`get(Object key)`**:返回与此键关联的值。
+* **`clear() `**:Used to remove all the mapping in given Map.
\ No newline at end of file
diff --git a/docs/56.md b/docs/56.md
index 6300f20b66d3d6d900e62a2668bd6a52ae2d7cb9..68f0e20a884227ca0c5e8df5838a7c5441a2a50b 100644
--- a/docs/56.md
+++ b/docs/56.md
@@ -169,7 +169,7 @@ Company Address: null
在这两种情况下,此处存储的 case 值均来自 class(Employee class),而不是 Object(emp object)。 此外,即使是临时变量,也会保存 companyCEO 变量值。 因为 static 修饰符会更改此变量的行为。
-## 子弹点
+## 重点
1. 静态变量无法序列化。
2. 在反序列化时,如果在基类的初始化过程中提供了相同的值,则可用于静态变量。
diff --git a/docs/59.md b/docs/59.md
index 36ad057e12ef27201db5f96ffcd070d8daf0d7a2..675866b49dc39e13491c326b3cff5607152e83e9 100644
--- a/docs/59.md
+++ b/docs/59.md
@@ -199,7 +199,7 @@ Friday
但这不是唯一可以实现枚举方法的用法。 在下一节中,我们将看到如何将 Enum 值映射到 String 并返回。
-## 实施接口
+## 实现接口
关于枚举鲜为人知的一件事是它们可以实现接口。 这意味着,如果您需要不同枚举所需要的通用功能,则可以使用一个接口定义它,而枚举必须在该接口中实现方法。
@@ -266,7 +266,7 @@ public Workday fromDatabase(String representation) {
有时,您最终得到一个采用布尔表达式的方法(或者您仅获得一个告诉您使用布尔值的项目说明,但感觉很痒)。 在这种情况下,可以随意引入一个新的枚举并使用正确的值而不是布尔值。
-例如,一旦我有了一个规范,告诉我必须创建一个带有一些参数的方法和一个布尔值,称为“ rightHandSide”。 实际上,“ rightHandSide”的默认值为 false。 首先,我按照规范中的说明实施了该方法,但是这对我来说并不舒服,我认为这是摆脱这种冷酷感觉的另一种方法:
+例如,一旦我有了一个规范,告诉我必须创建一个带有一些参数的方法和一个布尔值,称为“ rightHandSide”。 实际上,“ rightHandSide”的默认值为 false。 首先,我按照规范中的说明实现了该方法,但是这对我来说并不舒服,我认为这是摆脱这种冷酷感觉的另一种方法:
```java
public void someMethod(String someParameter, boolean rightHandSide) {