README.md 9.9 KB
Newer Older
C
CyC2018 已提交
1 2
| Ⅰ | Ⅱ | Ⅲ | Ⅳ | Ⅴ | Ⅵ | Ⅶ | Ⅷ | Ⅸ | Ⅹ |
| :--------: | :---------: | :---------: | :---------: | :---------: | :---------:| :---------: | :-------: | :-------:| :------:|
C
CyC2018 已提交
3
| 算法[:pencil2:](#算法-pencil2) | 操作系统[:computer:](#操作系统-computer)|网络[:cloud:](#网络-cloud) | 面向对象[:couple:](#面向对象-couple) |数据库[:floppy_disk:](#数据库-floppy_disk)| Java [:coffee:](#java-coffee)| 系统设计[:bulb:](#系统设计-bulb)| 工具[:hammer:](#工具-hammer)| 编码实践[:speak_no_evil:](#编码实践-speak_no_evil)| 后记[:memo:](#后记-memo) |
C
CyC2018 已提交
4

C
CyC2018 已提交
5 6
<br>
<div align="center">
C
fix  
CyC2018 已提交
7
    <img src="other/LogoMakr_0zpEzN.png" width="150px">
C
fix  
CyC2018 已提交
8
    <br>
郑永川 已提交
9
    <a href="other/Group.md"> <img src="https://img.shields.io/badge/>-qq-4ab8a1.svg"></a> <a href="https://legacy.gitbook.com/book/cyc2018/interview-notebook/details"> <img src="https://img.shields.io/badge/_-gitbook-4ab8a1.svg"></a> 
C
CyC2018 已提交
10 11
</div>

C
fix  
CyC2018 已提交
12 13
<!-- [![](https://img.shields.io/badge/>-gitter-blue.svg)](https://gitter.im/CyC2018-Interview-Notebook/Lobby?utm_source=share-link&utm_medium=link&utm_campaign=share-link) [![](https://img.shields.io/badge/_-gitbook-4ab8a1.svg)](https://legacy.gitbook.com/book/cyc2018/interview-notebook/details)  -->

C
CyC2018 已提交
14
## 算法 :pencil2:
C
CyC2018 已提交
15

郑永川 已提交
16
- [剑指 Offer 题解](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/剑指%20offer%20题解.md)
C
CyC2018 已提交
17

郑永川 已提交
18
  目录根据原书第二版进行编排,代码和原书有所不同,尽量比原书更简洁。
C
CyC2018 已提交
19

郑永川 已提交
20
- [Leetcode 题解](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Leetcode%20题解.md)
C
CyC2018 已提交
21

郑永川 已提交
22
  对题目做了一个大致分类,并对每种题型的解题思路做了总结。
C
CyC2018 已提交
23

郑永川 已提交
24
- [算法](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/算法.md)
C
CyC2018 已提交
25

郑永川 已提交
26
  排序、并查集、栈和队列、红黑树、散列表。
C
CyC2018 已提交
27

C
CyC2018 已提交
28
## 操作系统 :computer:
C
CyC2018 已提交
29

郑永川 已提交
30
- [计算机操作系统](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/计算机操作系统.md)
C
CyC2018 已提交
31

郑永川 已提交
32
  进程管理、内存管理、设备管理、链接。
C
CyC2018 已提交
33

郑永川 已提交
34
- [Linux](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Linux.md)
C
CyC2018 已提交
35

郑永川 已提交
36
  基本实现原理以及基本操作。
C
CyC2018 已提交
37

C
CyC2018 已提交
38
## 网络 :cloud:
C
CyC2018 已提交
39

郑永川 已提交
40
- [计算机网络](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/计算机网络.md)
C
CyC2018 已提交
41

郑永川 已提交
42
物理层、链路层、网络层、运输层、应用层。
C
CyC2018 已提交
43

郑永川 已提交
44
- [HTTP](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/HTTP.md)
C
CyC2018 已提交
45

郑永川 已提交
46
方法、状态码、Cookie、缓存、连接管理、HTTPs、HTTP 2.0。
C
CyC2018 已提交
47

郑永川 已提交
48
- [Socket](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Socket.md)
C
CyC2018 已提交
49

郑永川 已提交
50
I/O 模型、I/O 多路复用。
C
CyC2018 已提交
51

C
CyC2018 已提交
52
## 面向对象 :couple:
C
CyC2018 已提交
53

郑永川 已提交
54
- [设计模式](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/设计模式.md)
C
CyC2018 已提交
55

郑永川 已提交
56
实现了 Gof 的 23 种设计模式。
C
CyC2018 已提交
57

郑永川 已提交
58
- [面向对象思想](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/面向对象思想.md)
C
CyC2018 已提交
59

郑永川 已提交
60
三大原则(继承、封装、多态)、类图、设计原则。
C
CyC2018 已提交
61

C
CyC2018 已提交
62
## 数据库 :floppy_disk:
C
CyC2018 已提交
63

郑永川 已提交
64
- [数据库系统原理](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/数据库系统原理.md)
C
CyC2018 已提交
65

郑永川 已提交
66
事务、锁、隔离级别、MVCC、间隙锁、范式。
C
CyC2018 已提交
67

郑永川 已提交
68
- [SQL](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/SQL.md)
C
CyC2018 已提交
69

郑永川 已提交
70
SQL 基本语法。
C
CyC2018 已提交
71

郑永川 已提交
72
- [Leetcode-Database 题解](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Leetcode-Database%20题解.md)
C
CyC2018 已提交
73

C
CyC2018 已提交
74
Leetcode 上数据库题目的解题记录。
C
CyC2018 已提交
75

郑永川 已提交
76
- [MySQL](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/MySQL.md)
C
CyC2018 已提交
77

郑永川 已提交
78
存储引擎、索引、查询优化、切分、复制。
C
CyC2018 已提交
79

郑永川 已提交
80
- [Redis](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Redis.md)
C
CyC2018 已提交
81

郑永川 已提交
82
五种数据类型、字典和跳跃表数据结构、使用场景、和 Memcache 的比较、淘汰策略、持久化、文件事件的 Reactor 模式、复制。
C
CyC2018 已提交
83

C
CyC2018 已提交
84
## Java :coffee:
C
CyC2018 已提交
85

郑永川 已提交
86
- [Java 基础](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20基础.md)
C
CyC2018 已提交
87

郑永川 已提交
88
不会涉及很多基本语法介绍,主要是一些实现原理以及关键特性。
C
CyC2018 已提交
89

郑永川 已提交
90
- [Java 容器](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20容器.md)
C
CyC2018 已提交
91

郑永川 已提交
92
源码分析:ArrayList、Vector、CopyOnWriteArrayList、LinkedList、HashMap、ConcurrentHashMap、LinkedHashMap、WeekHashMap。
C
CyC2018 已提交
93

郑永川 已提交
94
- [Java 并发](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20并发.md)
C
CyC2018 已提交
95

郑永川 已提交
96
线程使用方式、两种互斥同步方法、线程协作、JUC、线程安全、内存模型、锁优化。
C
CyC2018 已提交
97

郑永川 已提交
98
- [Java 虚拟机](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20虚拟机.md)
C
CyC2018 已提交
99

郑永川 已提交
100
运行时数据区域、垃圾收集、类加载。
C
CyC2018 已提交
101

郑永川 已提交
102
- [Java I/O](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Java%20IO.md)
C
CyC2018 已提交
103

郑永川 已提交
104
NIO 的原理以及实例。
C
CyC2018 已提交
105

C
CyC2018 已提交
106
## 系统设计 :bulb:
C
CyC2018 已提交
107

郑永川 已提交
108
- [系统设计基础](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/系统设计基础.md)
C
CyC2018 已提交
109 110 111

性能、伸缩性、扩展性、可用性、安全性

郑永川 已提交
112
- [分布式](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/分布式.md)
C
CyC2018 已提交
113

C
CyC2018 已提交
114
分布式锁、分布式事务、CAP、BASE、Paxos、Raft
C
CyC2018 已提交
115

郑永川 已提交
116
- [集群](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/集群.md)
C
CyC2018 已提交
117

C
CyC2018 已提交
118 119
负载均衡、Session 管理

郑永川 已提交
120
- [攻击技术](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/攻击技术.md)
C
CyC2018 已提交
121

C
CyC2018 已提交
122
XSS、CSRF、SQL 注入、DDoS
C
CyC2018 已提交
123

郑永川 已提交
124
- [缓存](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/缓存.md)
C
CyC2018 已提交
125 126 127

缓存特征、缓存位置、缓存问题、数据分布、一致性哈希、LRU、CDN

郑永川 已提交
128
- [消息队列](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/消息队列.md)
C
CyC2018 已提交
129 130

消息处理模型、使用场景、可靠性
C
CyC2018 已提交
131

C
CyC2018 已提交
132 133
## 工具 :hammer:

郑永川 已提交
134
- [Git](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Git.md)
C
CyC2018 已提交
135

C
CyC2018 已提交
136
一些 Git 的使用和概念。
C
CyC2018 已提交
137

郑永川 已提交
138
- [Docker](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/Docker.md)
C
CyC2018 已提交
139 140 141

Docker 基本原理。

郑永川 已提交
142
- [正则表达式](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/正则表达式.md)
C
CyC2018 已提交
143

郑永川 已提交
144
正则表达式基本语法。
C
CyC2018 已提交
145

郑永川 已提交
146
- [构建工具](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/构建工具.md)
C
CyC2018 已提交
147

郑永川 已提交
148
构建工具的基本概念、主流构建工具介绍。
C
CyC2018 已提交
149

C
CyC2018 已提交
150
## 编码实践 :speak_no_evil:
C
CyC2018 已提交
151

郑永川 已提交
152
- [重构](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/重构.md)
C
CyC2018 已提交
153

C
CyC2018 已提交
154
参考 重构 改善既有代码的设计。
C
CyC2018 已提交
155

郑永川 已提交
156
- [代码可读性](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/代码可读性.md)
C
CyC2018 已提交
157

C
CyC2018 已提交
158
参考 编写可读代码的艺术。
C
CyC2018 已提交
159

郑永川 已提交
160
- [代码风格规范](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/代码风格规范.md)
C
CyC2018 已提交
161 162 163

Google 开源项目的代码风格规范。

C
CyC2018 已提交
164
## 后记 :memo:
C
CyC2018 已提交
165

C
CyC2018 已提交
166
**About**
C
CyC2018 已提交
167

郑永川 已提交
168
这个仓库是笔者的一个学习笔记,主要总结一些比较重要的知识点,希望对大家有所帮助。
C
CyC2018 已提交
169

郑永川 已提交
170
笔记不是从网上到处复制粘贴拼凑而来,虽然有少部分内容会直接引入书上原文或者官方技术文档的原文,但是没有直接摘抄其他人的博客文章,只做了参考,参考的文章会在最后给出链接。
C
CyC2018 已提交
171

郑永川 已提交
172
[BOOKLIST](https://github.com/CyC2018/Interview-Notebook/blob/master/BOOKLIST.md),这个书单是笔者至今看的一些比较好的技术书籍,虽然没有全都看完,但每本书多多少少都看了一部分。
C
CyC2018 已提交
173

郑永川 已提交
174
**How To Contribute**
C
CyC2018 已提交
175

C
CyC2018 已提交
176
笔记内容是笔者一个字一个字打上去的,难免会有一些笔误,如果发现笔误可直接在相应文档进行编辑修改。
C
CyC2018 已提交
177

郑永川 已提交
178 179 180
如果想要提交一个仓库现在还没有的全新内容,可以先将相应的文档放到 other 目录下。

欢迎在 Issue 中提交对本仓库的改进建议~
郑永川 已提交
181

郑永川 已提交
182
**Authorization**
C
CyC2018 已提交
183

C
CyC2018 已提交
184
虽然没有加开源协议,但是允许非商业性使用。
郑永川 已提交
185 186

转载使用请注明出处,谢谢!
C
CyC2018 已提交
187

郑永川 已提交
188
**Typesetting**
C
CyC2018 已提交
189

郑永川 已提交
190
笔记内容按照 [中文文案排版指北](http://mazhuang.org/wiki/chinese-copywriting-guidelines/) 进行排版,以保证内容的可读性。
C
CyC2018 已提交
191

郑永川 已提交
192
笔记不使用 `![]()` 这种方式来引用图片,而是用 `<img>` 标签。一方面是为了能够控制图片以合适的大小显示,另一方面是因为 GFM 不支持 `<center> ![]() </center>` 让图片居中显示,只能使用 `<div align="center"> <img src=""/> </div>` 达到居中的效果。
郑永川 已提交
193

郑永川 已提交
194
笔者将自己实现的文档排版功能提取出来,放在 Github Page 中,无需下载安装即可免费使用:[Text-Typesetting](https://github.com/CyC2018/Markdown-Typesetting)
C
CyC2018 已提交
195

郑永川 已提交
196
**Uploading**
C
CyC2018 已提交
197

郑永川 已提交
198
笔者在本地使用为知笔记软件进行书写,为了方便将本地笔记内容上传到 Github 上,实现了一整套自动化上传方案,包括文本文件的导出、提取图片、Markdown 文档转换、Git 同步。
郑永川 已提交
199

郑永川 已提交
200
进行 Markdown 文档转换是因为 Github 使用的 GFM 不支持 MathJax 公式和 TOC 标记,所以需要替换 MathJax 公式为 CodeCogs 的云服务和重新生成 TOC 目录。
C
CyC2018 已提交
201

郑永川 已提交
202
笔者将自己实现文档转换功能提取出来,方便大家在需要将本地 Markdown 上传到 Github,或者制作项目 README 文档时生成目录时使用:[GFM-Converter](https://github.com/CyC2018/GFM-Converter)
C
CyC2018 已提交
203

C
CyC2018 已提交
204
**Statement**
C
CyC2018 已提交
205 206 207

本仓库不参与商业行为,不向读者收取任何费用。(This repository is not engaging in business activities, and does not charge readers any fee.)

C
fix  
CyC2018 已提交
208 209
**Logo**

C
CyC2018 已提交
210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237
Power by [logomakr](https://logomakr.com/).

**Acknowledgements**

感谢以下人员对本仓库做出的贡献,当然不仅仅只有这些贡献者,这里就不一一列举了。如果你希望被添加到这个名单中,并且提交过 Issue 或者 PR,请与笔者联系。

<a href="https://github.com/linw7">
    <img src="other/21679154.png" width="50px">
</a> 
<a href="https://github.com/g10guang">
    <img src="other/18458140.jpg" width="50px">
</a> 
<a href="https://github.com/ResolveWang">
    <img src="other/8018776.jpg" width="50px">
</a>
<a href="https://github.com/crossoverJie">
    <img src="other/15684156.jpg" width="50px">
</a> 
<a href="https://github.com/jy03078584">
    <img src="other/7719370.png" width="50px">
</a>
<a href="https://github.com/kwongtailau">
    <img src="other/22954582.jpg" width="50px">
</a>
<a href="https://github.com/xiangflight">
    <img src="other/10072416.jpg" width="50px">
</a>

C
fix  
CyC2018 已提交
238

C
CyC2018 已提交
239