From 64aed604e1fa245a8aa5a39bcd34190c133297b2 Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Tue, 10 Apr 2018 21:29:04 +0800 Subject: [PATCH] auto commit --- notes/HTTP.md | 2 +- notes/JDK 中的设计模式.md | 8 ++++---- notes/Java 基础.md | 12 ++++++------ notes/数据库系统原理.md | 4 ++-- notes/设计模式.md | 3 +-- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/notes/HTTP.md b/notes/HTTP.md index cf6ae204..7238542e 100644 --- a/notes/HTTP.md +++ b/notes/HTTP.md @@ -803,7 +803,7 @@ DELETE /idX/delete HTTP/1.1 -> Returns 404 2. HTTP/1.1 支持管线化处理 3. HTTP/1.1 支持虚拟主机 4. HTTP/1.1 新增状态码 100 -5. HTTP/1.1 只是分块传输编码 +5. HTTP/1.1 支持分块传输编码 6. HTTP/1.1 新增缓存处理指令 max-age 具体内容见上文 diff --git a/notes/JDK 中的设计模式.md b/notes/JDK 中的设计模式.md index 8e2161cc..92f53cb3 100644 --- a/notes/JDK 中的设计模式.md +++ b/notes/JDK 中的设计模式.md @@ -44,11 +44,11 @@ java.awt.Desktop#getDesktop() ## 2. 简单工厂模式 -在不对用户暴露对象内部逻辑的前提下创建对象;使用通用的接口来创建对象; +在不对用户暴露对象内部逻辑的前提下创建对象。 ## 3. 工厂方法模式 -定义创建对象的接口,但是让子类来决定应该使用哪个类来创建;使用通用的接口来创建对象; +定义创建对象的接口,但是让子类来决定应该使用哪个类来创建。 ```java java.lang.Proxy#newProxyInstance() @@ -120,7 +120,7 @@ javax.swing.Action ## 3. 解释器模式 为语言创建解释器,通常由语言的语法和语法分析来定义。 - + ```java java.util.Pattern java.text.Normalizer @@ -229,7 +229,7 @@ JDBC ## 3. 组合模式 -将对象组合成树形结构来表示整理-部分层次关系,允许用户以相同的方式处理单独对象和组合对象。 +将对象组合成树形结构来表示整体-部分层次关系,允许用户以相同的方式处理单独对象和组合对象。 ```java javax.swing.JComponent#add(Component) diff --git a/notes/Java 基础.md b/notes/Java 基础.md index bc863655..b67e749b 100644 --- a/notes/Java 基础.md +++ b/notes/Java 基础.md @@ -255,9 +255,9 @@ public class EqualExample { ## hashCode() -hasCode() 返回散列值,而 equals() 是用来判断两个实例是否相等。相等的两个实例散列值一定要相同,但是散列值相同的两个实例不一定相等。 +hasCode() 返回散列值,而 equals() 是用来判断两个实例是否等价。等价的两个实例散列值一定要相同,但是散列值相同的两个实例不一定等价。 -在覆盖 equals() 方法时应当总是覆盖 hashCode() 方法,保证相等的两个实例散列值也相等。 +在覆盖 equals() 方法时应当总是覆盖 hashCode() 方法,保证相等的两个实例散列值也等价。 下面的代码中,新建了两个等价的实例,并将它们添加到 HashSet 中。我们希望将这两个实例当成一样的,只在集合中添加一个实例,但是因为 EqualExample 没有实现 hasCode() 方法,因此这两个实例的散列值是不同的,最终导致集合添加了两个等价的实例。 @@ -710,7 +710,7 @@ SuperExtendExample.func() - 覆盖(Override)存在于继承体系中,指子类实现了一个与父类在方法声明上完全相同的一个方法; -- 重载(Overload)也存在于同一个类中,指一个方法与已经存在的方法名称上相同,但是参数类型、个数、顺序至少有一个不同。应该注意的是,返回值不同,其它都相同不算是重载。 +- 重载(Overload)存在于同一个类中,指一个方法与已经存在的方法名称上相同,但是参数类型、个数、顺序至少有一个不同。应该注意的是,返回值不同,其它都相同不算是重载。 # 五、String @@ -739,7 +739,7 @@ SuperExtendExample.func() 如果一个 String 对象已经被创建过了,那么就会从 String Pool 中取得引用。只有 String 是不可变的,才可能使用 String Pool。 -

+

**3. 安全性** @@ -773,7 +773,7 @@ String s5 = "bbb"; System.out.println(s4 == s5); // true ``` -Java 虚拟机将堆划分成新生代、老年代和永久代(PermGen Space)。在 Java 6 之前,字符串常量池被放在永久代中,而在 Java 7 时,它被放在堆的其它位置。这是因为永久代的空间有限,如果大量使用字符串的场景下会导致 OutOfMemoryError 错误。 +Java 虚拟机将堆划分成新生代、老年代和永久代(PermGen Space)。在 Java 7 之前,字符串常量池被放在永久代中,而在 Java 7,它被放在堆的其它位置。这是因为永久代的空间有限,如果大量使用字符串的场景下会导致 OutOfMemoryError 错误。 > [What is String interning?](https://stackoverflow.com/questions/10578984/what-is-string-interning)
[深入解析 String#intern](https://tech.meituan.com/in_depth_understanding_string_intern.html) @@ -946,7 +946,7 @@ Throwable 可以用来表示任何可以作为异常抛出的类,分为两种 1. **受检异常** :需要用 try...catch... 语句捕获并进行处理,并且可以从异常中恢复; 2. **非受检异常** :是程序运行时错误,例如除 0 会引发 Arithmetic Exception,此时程序奔溃并且无法恢复。 -

+

> [Java 入门之异常处理](https://www.tianmaying.com/tutorial/Java-Exception)
[Java 异常的面试问题及答案 -Part 1](http://www.importnew.com/7383.html) diff --git a/notes/数据库系统原理.md b/notes/数据库系统原理.md index 46b5e1b8..134c60fa 100644 --- a/notes/数据库系统原理.md +++ b/notes/数据库系统原理.md @@ -307,7 +307,7 @@ InnoDB 的 MVCC 使用到的快照存储在 Undo 日志中,该日志通过回 ### 4. UPDATE -将系统版本号作为更新后的数据行快照的创建版本号,同时将系统版本号作为作为更新前的数据行快照的删除版本号。可以理解为先执行 DELETE 后执行 INSERT。 +将系统版本号作为更新后的数据行快照的创建版本号,同时将系统版本号作为更新前的数据行快照的删除版本号。可以理解为先执行 DELETE 后执行 INSERT。 ## 快照读与当前读 @@ -401,7 +401,7 @@ SELECT c FROM t WHERE c BETWEEN 10 and 20 FOR UPDATE; 1. 冗余数据,例如学生-2 出现了两次。 2. 修改异常,修改了一个记录中的信息,但是另一个记录中相同的信息却没有被修改。 -3. 删除异常,删除一个信息,那么也会丢失其它信息。例如如果删除了课程-1,需要删除第二行和第三行,那么学生-1 的信息就会丢失。 +3. 删除异常,删除一个信息,那么也会丢失其它信息。例如如果删除了课程-1,需要删除第一行和第三行,那么学生-1 的信息就会丢失。 4. 插入异常,例如想要插入一个学生的信息,如果这个学生还没选课,那么就无法插入。 ## 范式 diff --git a/notes/设计模式.md b/notes/设计模式.md index 21ce516f..b7e6c76a 100644 --- a/notes/设计模式.md +++ b/notes/设计模式.md @@ -276,13 +276,12 @@ public class ConcreteFactory2 extends Factory { 抽象工厂模式创建的是对象家族,也就是很多对象而不是一个对象,并且这些对象是相关的,也就是说必须一起创建出来。而工厂模式只是用于创建一个对象,这和抽象工厂模式有很大不同。 -抽象工厂模式用到了工厂模式来创建单一对象,在类图左部,AbstractFactory 中的 createProductA 和 createProductB 方法都是让子类来实现,这两个方法单独来看就是在创建一个对象,这符合工厂模式的定义。 +抽象工厂模式用到了工厂模式来创建单一对象,AbstractFactory 中的 createProductA 和 createProductB 方法都是让子类来实现,这两个方法单独来看就是在创建一个对象,这符合工厂模式的定义。 至于创建对象的家族这一概念是在 Client 体现,Client 要通过 AbstractFactory 同时调用两个方法来创建出两个对象,在这里这两个对象就有很大的相关性,Client 需要同时创建出这两个对象。 从高层次来看,抽象工厂使用了组合,即 Cilent 组合了 AbstractFactory,而工厂模式使用了继承。 - ## 代码实现 ```java