Skip to content

Commit 4319b3d

Browse files
authored
Merge pull request hollischuang#172 from lowking/master
修正一些错别字
2 parents 964d050 + 5d64055 commit 4319b3d

File tree

12 files changed

+20
-20
lines changed

12 files changed

+20
-20
lines changed

docs/advance/design-patterns/abstract-factory-pattern.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
>
3737
> Product(具体产品):定义具体工厂生产的具体产品对象,实现抽象产品接口中定义的业务方法。
3838
39-
本文的例子采用一个汽车代工厂造汽车的例子。假设我们是一家汽车代工厂商,我们负责给奔驰和特斯拉两家公司制造车子。我们简单的把奔驰车理解为需要加油的车,特斯拉为需要充电的车。其中奔驰车中包含跑车和商务车两种,特斯拉同样也包含奔驰车和商务车
39+
本文的例子采用一个汽车代工厂造汽车的例子。假设我们是一家汽车代工厂商,我们负责给奔驰和特斯拉两家公司制造车子。我们简单的把奔驰车理解为需要加油的车,特斯拉为需要充电的车。其中奔驰车中包含跑车和商务车两种,特斯拉同样也包含跑车和商务车
4040

4141
[<img src="http://www.hollischuang.com/wp-content/uploads/2016/04/QQ20160419-1.png" alt="QQ20160419-1" width="657" height="554" class="alignnone size-full wp-image-1422" />][6]
4242

docs/advance/design-patterns/adapter-pattern.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ GOF中将适配器模式分为类适配器模式和对象适配器模式。区
125125
public void charge(){
126126
System.out.println("开始给我的GalaxyS7手机充电...");
127127
microUsbInterface.chargeWithMicroUsb();
128-
System.out.println("开始给我的GalaxyS7手机充电...");
128+
System.out.println("结束给我的GalaxyS7手机充电...");
129129
}
130130

131131
public MicroUsbInterface getMicroUsbInterface() {
@@ -203,14 +203,14 @@ GOF中将适配器模式分为类适配器模式和对象适配器模式。区
203203
==============================
204204
开始给我的GalaxyS7手机充电...
205205
使用MicroUsb型号的充电器充电...
206-
开始给我的GalaxyS7手机充电...
206+
结束给我的GalaxyS7手机充电...
207207
==============================
208208
开始给我的Iphone6Plus手机充电...
209209
使用MicroUsb型号的充电器充电...
210210
结束给我的Iphone6Plus手机充电...
211211

212212

213-
上面的例子通过适配器,把一个MicroUsb型号的充电器用来给Iphone充电。从代码层面,就是通过适配器复用了MicroUsb接口及其实现类。在很大程度上福永了已有的代码
213+
上面的例子通过适配器,把一个MicroUsb型号的充电器用来给Iphone充电。从代码层面,就是通过适配器复用了MicroUsb接口及其实现类。在很大程度上复用了已有的代码
214214

215215
## 优缺点
216216

docs/advance/design-patterns/strategy-pattern.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888

8989
@Override
9090
public double calPrice(double bookPrice) {
91-
System.out.println("对于中级会员的折扣为20%");
91+
System.out.println("对于高级会员的折扣为20%");
9292
return bookPrice * 0.8;
9393
}
9494
}
@@ -149,7 +149,7 @@
149149
}
150150
}
151151

152-
//对于中级会员的折扣为20%
152+
//对于高级会员的折扣为20%
153153
//高级会员图书的最终价格为:240.0
154154
//对于中级会员的折扣为10%
155155
//中级会员图书的最终价格为:270.0

docs/basics/concurrent-coding/concurrent.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
并发(Concurrent),在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。
22

3-
那么,操作系统视如何实现这种并发的呢
3+
那么,操作系统是如何实现这种并发的呢
44

55
现在我们用到操作系统,无论是Windows、Linux还是MacOS等其实都是**多用户多任务分时操作系统**。使用这些操作系统的用户是可以“同时”干多件事的。
66

docs/basics/concurrent-coding/debug-in-multithread.md

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

33
但是我之前面试过很多人,很多人都知道多线程怎么实现,但是却不知道如何调试多线程的代码,这篇文章我们来介绍下如何调试多线程的代码。
44

5-
首先我们写一个多线程的例子,使用继承Runnable接口的方式定义多个线程,并启动执行。
5+
首先我们写一个多线程的例子,使用实现Runnable接口的方式定义多个线程,并启动执行。
66

77
/**
88
* @author Hollis

docs/basics/java-basic/enum-class.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ Java中定义枚举是使用enum关键字的,但是Java中其实还有一个ja
1111

1212
这个类我们在日常开发中不会用到,但是其实我们使用enum定义的枚举,其实现方式就是通过继承Enum类实现的。
1313

14-
当我们使用enmu来定义一个枚举类型的时候,编译器会自动帮我们创建一个final类型的类继承Enum类,所以枚举类型不能被继承。
14+
当我们使用enum来定义一个枚举类型的时候,编译器会自动帮我们创建一个final类型的类继承Enum类,所以枚举类型不能被继承。

docs/basics/java-basic/enum-singleton.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@
3939
private volatile static Singleton singleton;
4040
private Singleton (){}
4141
public static Singleton getSingleton() {
42-
if (singleton == null) {
43-
synchronized (Singleton.class) {
4442
if (singleton == null) {
45-
singleton = new Singleton();
43+
synchronized (Singleton.class) {
44+
if (singleton == null) {
45+
singleton = new Singleton();
46+
}
47+
}
4648
}
47-
}
48-
}
49-
return singleton;
49+
return singleton;
5050
}
5151
}
5252

docs/basics/java-basic/final-string.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ String s2 = s;
7070

7171
当我们在程序中传递一个字符串的时候,如果这个字符串的内容是不可变的,那么我们就可以相信这个字符串中的内容。
7272

73-
但是,如果是可变的,那么这个字符串内容就可能随时都被修改。那么这个字符串内容就完全可信了。这样整个系统就没有安全性可言了。
73+
但是,如果是可变的,那么这个字符串内容就可能随时都被修改。那么这个字符串内容就完全不可信了。这样整个系统就没有安全性可言了。
7474

7575
#### 线程安全
7676

docs/basics/java-basic/hash-in-hashmap.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
}
8080

8181

82-
前面我说过,`indexFor`方法其实主要是将hash生成的整型转换成链表数组中的下标。那么`return h & (length-1);`是什么意思呢?其实,他就是取模。Java之所有使用位运算(&)来代替取模运算(%),最主要的考虑就是效率。**位运算(&)效率要比代替取模运算(%)高很多,主要原因是位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快。**
82+
前面我说过,`indexFor`方法其实主要是将hash生成的整型转换成链表数组中的下标。那么`return h & (length-1);`是什么意思呢?其实,他就是取模。Java之所以使用位运算(&)来代替取模运算(%),最主要的考虑就是效率。**位运算(&)效率要比代替取模运算(%)高很多,主要原因是位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快。**
8383

8484
那么,为什么可以使用位运算(&)来实现取模运算(%)呢?这实现的原理如下:
8585

docs/basics/java-basic/hashmap-default-capacity.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ Step 1 怎么理解呢?其实是对一个二进制数依次向右移位,然
194194

195195
### 扩容
196196

197-
除了初始化的时候回指定HashMap的容量,在进行扩容的时候,其容量也可能会改变。
197+
除了初始化的时候会指定HashMap的容量,在进行扩容的时候,其容量也可能会改变。
198198

199199
HashMap有扩容机制,就是当达到扩容条件时会进行扩容。HashMap的扩容条件就是当HashMap中的元素个数(size)超过临界值(threshold)时就会自动扩容。
200200

docs/basics/java-basic/length-of-string.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,4 +134,4 @@ int 是一个 32 位变量类型,取正数部分来算的话,他们最长可
134134

135135
在运行期,长度不能超过Int的范围,否则会抛异常。
136136

137-
最后,这个知识点 ,我录制了视频(https://www.bilibili.com/video/BV1uK4y1t7H1/),其中有关于如何进行实验测试、如何查阅Java规范以及如何对javac进行deubg的技巧。欢迎进一步学习。
137+
最后,这个知识点 ,我录制了视频([点击跳转](https://www.bilibili.com/video/BV1uK4y1t7H1/)) ,其中有关于如何进行实验测试、如何查阅Java规范以及如何对javac进行deubg的技巧。欢迎进一步学习。

docs/basics/object-oriented/java-pass-by.md

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

5757
* 传值调用(值传递)
5858
* 在传值调用中,实际参数先被求值,然后其值通过复制,被传递给被调函数的形式参数。因为形式参数拿到的只是一个"局部拷贝",所以如果在被调函数中改变了形式参数的值,并不会改变实际参数的值。
59-
* 传引用调用(应用传递
59+
* 传引用调用(引用传递
6060
* 在传引用调用中,传递给函数的是它的实际参数的隐式引用而不是实参的拷贝。因为传递的是引用,所以,如果在被调函数中改变了形式参数的值,改变对于调用者来说是可见的。
6161
* 传共享对象调用(共享对象传递)
6262
* 传共享对象调用中,先获取到实际参数的地址,然后将其复制,并把该地址的拷贝传递给被调函数的形式参数。因为参数的地址都指向同一个对象,所以我们称也之为"传共享对象",所以,如果在被调函数中改变了形式参数的值,调用者是可以看到这种变化的。

0 commit comments

Comments
 (0)