diff --git a/notes/Java 容器.md b/notes/Java 容器.md
index c5a41bc0..1db0d845 100644
--- a/notes/Java 容器.md
+++ b/notes/Java 容器.md
@@ -646,8 +646,8 @@ static int indexFor(int h, int length) {
| 参数 | 含义 |
| :--: | :-- |
| capacity | table 的容量大小,默认为 16。需要注意的是 capacity 必须保证为 2 的 n 次方。|
-| size | table 的实际使用量。 |
-| threshold | size 的临界值,size 必须小于 threshold,如果大于等于,就必须进行扩容操作。 |
+| size | 键值对数量。 |
+| threshold | size 的临界值,当 size 大于等于 threshold 就必须进行扩容操作。 |
| loadFactor | 装载因子,table 能够使用的比例,threshold = capacity * loadFactor。|
```java
diff --git a/notes/Java 虚拟机.md b/notes/Java 虚拟机.md
index 2dafe334..e24015c5 100644
--- a/notes/Java 虚拟机.md
+++ b/notes/Java 虚拟机.md
@@ -227,7 +227,7 @@ obj = null;
-将存活的对象进行标记,然后清理掉未被标记的对象。
+标记要回收的对象,然后清除。
不足:
diff --git a/notes/计算机操作系统.md b/notes/计算机操作系统.md
index 56dc401e..fbc26212 100644
--- a/notes/计算机操作系统.md
+++ b/notes/计算机操作系统.md
@@ -625,7 +625,7 @@ void take_two(int i) {
down(&s[i]);
}
-void put_tow(i) {
+void put_two(i) {
down(&mutex);
state[i] = THINKING;
test(LEFT);
diff --git a/notes/设计模式.md b/notes/设计模式.md
index 38713e5f..f20a807a 100644
--- a/notes/设计模式.md
+++ b/notes/设计模式.md
@@ -149,7 +149,7 @@ uniqueInstance 采用 volatile 关键字修饰也是很有必要的, `uniqueIn
2. 初始化 uniqueInstance
3. 将 uniqueInstance 指向分配的内存地址
-但是由于 JVM 具有指令重排的特性,执行顺序有可能变成 1>3>2。指令重排在单线程环境下不会出先问题,但是在多线程环境下会导致一个线程获得还没有初始化的实例。例如,线程 T1 执行了 1 和 3,此时 T2 调用 getUniqueInstance() 后发现 uniqueInstance 不为空,因此返回 uniqueInstance,但此时 uniqueInstance 还未被初始化。
+但是由于 JVM 具有指令重排的特性,执行顺序有可能变成 1>3>2。指令重排在单线程环境下不会出现问题,但是在多线程环境下会导致一个线程获得还没有初始化的实例。例如,线程 T1 执行了 1 和 3,此时 T2 调用 getUniqueInstance() 后发现 uniqueInstance 不为空,因此返回 uniqueInstance,但此时 uniqueInstance 还未被初始化。
使用 volatile 可以禁止 JVM 的指令重排,保证在多线程环境下也能正常运行。