Skip to content

Commit d740936

Browse files
authored
Merge branch 'Snailclimb:master' into master
2 parents c00721e + 46146f8 commit d740936

File tree

173 files changed

+1638
-1038
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

173 files changed

+1638
-1038
lines changed

Diff for: README.md

+57-25
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@
4444

4545
### 基础
4646

47-
**知识点/面试题:**(必看:+1: )
47+
**知识点/面试题** : (必看:+1: )
4848

4949
1. **[Java 基础知识](docs/java/basis/Java基础知识.md)**
50-
2. **[Java 基础知识疑难点/易错点](docs/java/basis/Java基础知识疑难点.md)**
50+
2. [Java 基础知识疑难点/易错点](docs/java/basis/Java基础知识疑难点.md)
5151

5252
**重要知识点详解:**
5353

@@ -61,6 +61,7 @@
6161

6262
1. **[Java 容器常见问题总结](docs/java/collection/Java集合框架常见面试题.md)** (必看 :+1:)
6363
2. **源码分析**[ArrayList 源码+扩容机制分析](docs/java/collection/ArrayList源码+扩容机制分析.md)[LinkedList 源码](docs/java/collection/LinkedList源码分析.md)[HashMap(JDK1.8)源码+底层数据结构分析](<docs/java/collection/HashMap(JDK1.8)源码+底层数据结构分析.md>)[ConcurrentHashMap 源码+底层数据结构分析](docs/java/collection/ConcurrentHashMap源码+底层数据结构分析.md)
64+
3. [Java 容器使用注意事项总结](docs/java/collection/Java集合使用注意事项总结.md)
6465

6566
### 并发
6667

@@ -71,11 +72,12 @@
7172

7273
**重要知识点详解:**
7374

74-
2. **线程池**[Java 线程池学习总结](./docs/java/multi-thread/java线程池学习总结.md)[拿来即用的线程池最佳实践](./docs/java/multi-thread/拿来即用的线程池最佳实践.md)
75-
4. [ ThreadLocal 关键字解析](docs/java/multi-thread/万字详解ThreadLocal关键字.md)
76-
5. [并发容器总结](docs/java/multi-thread/并发容器总结.md)
77-
6. [JUC 中的 Atomic 原子类总结](docs/java/multi-thread/Atomic原子类总结.md)
78-
7. [AQS 原理以及 AQS 同步组件总结](docs/java/multi-thread/AQS原理以及AQS同步组件总结.md)
75+
1. **线程池**[Java 线程池学习总结](./docs/java/multi-thread/java线程池学习总结.md)[拿来即用的线程池最佳实践](./docs/java/multi-thread/拿来即用的线程池最佳实践.md)
76+
2. [ ThreadLocal 关键字解析](docs/java/multi-thread/万字详解ThreadLocal关键字.md)
77+
3. [并发容器总结](docs/java/multi-thread/并发容器总结.md)
78+
4. [JUC 中的 Atomic 原子类总结](docs/java/multi-thread/Atomic原子类总结.md)
79+
5. [AQS 原理以及 AQS 同步组件总结](docs/java/multi-thread/AQS原理以及AQS同步组件总结.md)
80+
6. [CompletableFuture入门](docs/java/multi-thread/CompletableFuture入门.md)
7981

8082
### JVM (必看 :+1:)
8183

@@ -95,28 +97,38 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
9597
1. **Java 8**[Java 8 新特性总结](docs/java/new-features/Java8新特性总结.md)[Java8常用新特性总结](docs/java/new-features/java8-common-new-features.md)[Java 8 学习资源推荐](docs/java/new-features/Java8教程推荐.md)[Java8 forEach 指南](docs/java/new-features/Java8foreach指南.md)
9698
2. **Java9~Java15** : [一文带你看遍 JDK9~15 的重要新特性!](./docs/java/new-features/java新特性总结.md)
9799

100+
### 小技巧
101+
102+
1. [JAD 反编译](docs/java/tips/JAD反编译tricks.md)
103+
2. [手把手教你定位常见 Java 性能问题](./docs/java/tips/手把手教你定位常见Java性能问题.md)
104+
98105
## 计算机基础
99106

100107
👉 **[图解计算机基础 PDF 下载](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=100021725&idx=1&sn=2db9664ca25363139a81691043e9fd8f&chksm=4ea19a1679d61300d8990f7e43bfc7f476577a81b712cf0f9c6f6552a8b219bc081efddb5c54#rd)**
101108

102109
### 操作系统
103110

104-
1. [操作系统常见问题总结!](docs/operating-system/basis.md)
105-
2. [后端程序员必备的 Linux 基础知识](docs/operating-system/linux.md)
106-
3. [Shell 编程入门](docs/operating-system/Shell.md)
111+
1. [操作系统常见问题总结!](docs/cs-basics/operating-system/basis.md)
112+
2. [后端程序员必备的 Linux 基础知识总结](docs/cs-basics/operating-system/linux.md)
113+
3. [Shell 编程入门](docs/cs-basics/operating-system/Shell.md)
107114

108115
### 网络
109116

110-
1. [计算机网络常见面试题](docs/network/计算机网络.md)
111-
2. [计算机网络基础知识总结](docs/network/计算机网络知识总结.md)
117+
1. [计算机网络常见面试题](docs/cs-basics/network/计算机网络.md)
118+
2. [计算机网络基础知识总结](docs/cs-basics/network/计算机网络知识总结.md)
112119

113120
### 数据结构
114121

115-
- **图解数据结构:**
116-
1. [线性数据结构 :数组、链表、栈、队列](docs/dataStructures-algorithms/data-structure/线性数据结构.md)
117-
2. [](docs/dataStructures-algorithms/data-structure/图.md)
118-
3. [](docs/dataStructures-algorithms/data-structure/堆.md)
119-
- [不了解布隆过滤器?一文给你整的明明白白!](docs/dataStructures-algorithms/data-structure/bloom-filter.md)
122+
**图解数据结构:**
123+
124+
1. [线性数据结构 :数组、链表、栈、队列](docs/cs-basics/data-structure/线性数据结构.md)
125+
2. [](docs/cs-basics/data-structure/图.md)
126+
3. [](docs/cs-basics/data-structure/堆.md)
127+
4. [](docs/cs-basics/data-structure/树.md) :重点关注[红黑树](docs/cs-basics/data-structure/红黑树.md)、B-,B+,B*树、LSM树
128+
129+
其他常用数据结构 :
130+
131+
1. [布隆过滤器](docs/cs-basics/data-structure/bloom-filter.md)
120132

121133
### 算法
122134

@@ -125,11 +137,13 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
125137
- [算法学习书籍+资源推荐](https://www.zhihu.com/question/323359308/answer/1545320858)
126138
- [如何刷Leetcode?](https://www.zhihu.com/question/31092580/answer/1534887374)
127139

128-
**常见算法问题总结:**
140+
**常见算法问题总结**
141+
142+
- [几道常见的字符串算法题总结 ](docs/cs-basics/algorithms/几道常见的字符串算法题.md)
143+
- [几道常见的链表算法题总结 ](docs/cs-basics/algorithms/几道常见的链表算法题.md)
144+
- [剑指 offer 部分编程题](docs/cs-basics/algorithms/剑指offer部分编程题.md)
129145

130-
- [几道常见的字符串算法题总结 ](docs/dataStructures-algorithms/几道常见的字符串算法题.md)
131-
- [几道常见的链表算法题总结 ](docs/dataStructures-algorithms/几道常见的链表算法题.md)
132-
- [剑指 offer 部分编程题](docs/dataStructures-algorithms/剑指offer部分编程题.md)
146+
另外,[GeeksforGeeks]( https://www.geeksforgeeks.org/fundamentals-of-algorithms/) 这个网站总结了常见的算法 ,比较全面系统。
133147

134148
## 数据库
135149

@@ -147,7 +161,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle
147161

148162
1. [MySQL数据库索引总结](docs/database/mysql/MySQL数据库索引.md)
149163
2. [事务隔离级别(图文详解)](docs/database/mysql/事务隔离级别(图文详解).md)
150-
3. [MySQL三大日志(binlog、redo log和undo log)详解](docs/database/mysql/MySQL三大日志(binlog、redo log和undo log).md)
164+
3. [MySQL三大日志(binlog、redo log和undo log)详解](docs/database/mysql/MySQL三大日志.md)
151165
4. [InnoDB存储引擎对MVCC的实现](docs/database/mysql/InnoDB对MVCC的实现.md)
152166
5. [一条 SQL 语句在 MySQL 中如何执行的](docs/database/mysql/一条sql语句在mysql中如何执行的.md)
153167
6. [关于数据库中如何存储时间的一点思考](docs/database/mysql/关于数据库存储时间的一点思考.md)
@@ -264,7 +278,7 @@ Dubbo 是一款国产的 RPC 框架,由阿里开源。相关阅读:
264278

265279
#### 分布式 id
266280

267-
在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。比如数据量太大之后,往往需要对进行对数据进行分库分表,分库分表后需要有一个唯一 ID 来标识一条数据或消息,数据库的自增 ID 显然不能满足需求。相关阅读:[为什么要分布式 id ?分布式 id 生成方案有哪些?](docs/system-design/micro-service/分布式id生成方案总结.md)
281+
在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。比如数据量太大之后,往往需要对数据进行分库分表,分库分表后需要有一个唯一 ID 来标识一条数据或消息,数据库的自增 ID 显然不能满足需求。相关阅读:[为什么要分布式 id ?分布式 id 生成方案有哪些?](docs/system-design/micro-service/分布式id生成方案总结.md)
268282

269283
#### 分布式事务
270284

@@ -347,14 +361,31 @@ Dubbo 是一款国产的 RPC 框架,由阿里开源。相关阅读:
347361

348362
另外,重试的次数一般设为 3 次,再多次的重试没有好处,反而会加重服务器压力(部分场景使用失败重试机制会不太适合)。
349363

364+
#### 灾备设计
365+
366+
**灾备** = 容灾+备份。
367+
368+
- **备份** : 将系统所产生的的所有重要数据多备份几份。
369+
- **容灾** : 在异地建立两个完全相同的系统。当某个地方的系统突然挂掉,整个应用系统可以切换到另一个,这样系统就可以正常提供服务了。
370+
371+
#### 异地多活
372+
373+
异地多活描述的是将服务部署在异地并且服务同时对外提供服务。和传统的灾备设计的最主要区别在于“多活”,即所有站点都是同时在对外提供服务的。
374+
375+
异地多活是为了应对突发状况比如火灾、地震等自然或者认为灾害。
376+
377+
相关阅读:
378+
379+
- [四步构建异地多活](https://mp.weixin.qq.com/s/hMD-IS__4JE5_nQhYPYSTg)
380+
- [《从零开始学架构》— 28 | 业务高可用的保障:异地多活架构](http://gk.link/a/10pKZ)
381+
350382
### 大型网站架构
351383

352384
- [8 张图读懂大型网站技术架构](docs/system-design/website-architecture/8%20张图读懂大型网站技术架构.md)
353385
- [关于大型网站系统架构你不得不懂的 10 个问题](docs/system-design/website-architecture/关于大型网站系统架构你不得不懂的10个问题.md)
354386

355387
## 工具
356388

357-
1. **Java**[JAD 反编译](docs/java/JAD反编译tricks.md)[手把手教你定位常见 Java 性能问题](./docs/java/手把手教你定位常见Java性能问题.md)
358389
2. **Git**[Git 入门](docs/tools/Git.md)
359390
3. **Github**[Github小技巧](docs/tools/Github技巧.md)
360391
4. **Docker** : [Docker 基本概念解读](docs/tools/Docker.md)[Docker从入门到上手干事](docs/tools/Docker从入门到实战.md)
@@ -378,7 +409,8 @@ Dubbo 是一款国产的 RPC 框架,由阿里开源。相关阅读:
378409

379410
### 待办
380411

381-
- [ ] 数据结构总结重构
412+
- [ ] 计算机网络知识点完善
413+
- [ ] 分布式常见理论和算法总结完善
382414

383415
### 捐赠支持
384416

0 commit comments

Comments
 (0)