Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wushizhenking
CS-Notes
提交
64aed604
C
CS-Notes
项目概览
wushizhenking
/
CS-Notes
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
CS-Notes
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
64aed604
编写于
4月 10, 2018
作者:
C
CyC2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
auto commit
上级
0633ee3b
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
14 addition
and
15 deletion
+14
-15
notes/HTTP.md
notes/HTTP.md
+1
-1
notes/JDK 中的设计模式.md
notes/JDK 中的设计模式.md
+4
-4
notes/Java 基础.md
notes/Java 基础.md
+6
-6
notes/数据库系统原理.md
notes/数据库系统原理.md
+2
-2
notes/设计模式.md
notes/设计模式.md
+1
-2
未找到文件。
notes/HTTP.md
浏览文件 @
64aed604
...
...
@@ -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
具体内容见上文
...
...
notes/JDK 中的设计模式.md
浏览文件 @
64aed604
...
...
@@ -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
)
...
...
notes/Java 基础.md
浏览文件 @
64aed604
...
...
@@ -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。
<div
align=
"center"
>
<img
src=
"../pics//f76067a5-7d5f-4135-9549-8199c77d8f1c.jpg"
/>
</div><br>
<div
align=
"center"
>
<img
src=
"../pics//f76067a5-7d5f-4135-9549-8199c77d8f1c.jpg"
width=
""
/>
</div><br>
**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) </br> [深入解析 String#intern](https://tech.meituan.com/in_depth_understanding_string_intern.html)
...
...
@@ -946,7 +946,7 @@ Throwable 可以用来表示任何可以作为异常抛出的类,分为两种
1.
**受检异常**
:需要用 try...catch... 语句捕获并进行处理,并且可以从异常中恢复;
2.
**非受检异常**
:是程序运行时错误,例如除 0 会引发 Arithmetic Exception,此时程序奔溃并且无法恢复。
<div
align=
"center"
>
<img
src=
"../pics//PPjwP.png"
/>
</div><br>
<div
align=
"center"
>
<img
src=
"../pics//PPjwP.png"
width=
"600"
/>
</div><br>
> [Java 入门之异常处理](https://www.tianmaying.com/tutorial/Java-Exception) </br> [Java 异常的面试问题及答案 -Part 1](http://www.importnew.com/7383.html)
...
...
notes/数据库系统原理.md
浏览文件 @
64aed604
...
...
@@ -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.
插入异常,例如想要插入一个学生的信息,如果这个学生还没选课,那么就无法插入。
## 范式
...
...
notes/设计模式.md
浏览文件 @
64aed604
...
...
@@ -276,13 +276,12 @@ public class ConcreteFactory2 extends Factory {
抽象工厂模式创建的是对象家族,也就是很多对象而不是一个对象,并且这些对象是相关的,也就是说必须一起创建出来。而工厂模式只是用于创建一个对象,这和抽象工厂模式有很大不同。
抽象工厂模式用到了工厂模式来创建单一对象,
在类图左部,
AbstractFactory 中的 createProductA 和 createProductB 方法都是让子类来实现,这两个方法单独来看就是在创建一个对象,这符合工厂模式的定义。
抽象工厂模式用到了工厂模式来创建单一对象,AbstractFactory 中的 createProductA 和 createProductB 方法都是让子类来实现,这两个方法单独来看就是在创建一个对象,这符合工厂模式的定义。
至于创建对象的家族这一概念是在 Client 体现,Client 要通过 AbstractFactory 同时调用两个方法来创建出两个对象,在这里这两个对象就有很大的相关性,Client 需要同时创建出这两个对象。
从高层次来看,抽象工厂使用了组合,即 Cilent 组合了 AbstractFactory,而工厂模式使用了继承。
## 代码实现
```
java
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录