Skip to content

Commit e96ea42

Browse files
committed
[docs fix]Markdown 格式规范
1 parent 7ea0b68 commit e96ea42

File tree

93 files changed

+341
-315
lines changed

Some content is hidden

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

93 files changed

+341
-315
lines changed

docs/about-the-author/feelings-of-half-a-year-from-graduation-to-entry.md

+1-3
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,8 @@ tag:
4646
还没完成的:
4747

4848
1. Kafka 高级特性比如工作流程、Kafka 为什么快等等的分析;
49-
5049
2. 源码阅读分析;
51-
52-
3. ......
50+
3. ……
5351

5452
**所以,我觉得技术的积累和沉淀很大程度在乎工作之外的时间(大佬和一些本身就特别厉害的除外)。**
5553

docs/about-the-author/my-college-life.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ tag:
372372
6. 管理自己的身材,没事去跑跑步,别当油腻男。
373373
7. 别太看重绩点。我觉得绩点对于找工作还有考研实际的作用都可以忽略不计,不过不挂科还是比较重要的。但是,绩点确实在奖学金评选和保研名额选取上占有最大的分量。
374374
8. 别太功利性。做事情以及学习知识都不要奢求它能立马带给你什么,坚持和功利往往是成反比的。
375-
9. ......
375+
9. ……
376376

377377
## 后记
378378

docs/about-the-author/zhishixingqiu-two-years.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ star: 2
3636
6. 海量 Java 优质面试资源分享。
3737
7. 打卡活动,读书交流,学习交流,让学习不再孤单,报团取暖。
3838
8. 不定期福利:节日抽奖、送书送课、球友线下聚会等等。
39-
9. ......
39+
9. ……
4040

4141
其中的任何一项服务单独拎出来价值都远超星球门票了。
4242

docs/books/java.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ icon: "java"
4242

4343
Java 8 算是一个里程碑式的版本,现在一般企业还是用 Java 8 比较多。掌握 Java 8 的一些新特性比如 Lambda、Stream API 还是挺有必要的。这块的话,我推荐 **[《Java 8 实战》](https://book.douban.com/subject/26772632/)** 这本书。
4444

45-
**[Java编程的逻辑](https://book.douban.com/subject/30133440/)**
45+
**[Java 编程的逻辑](https://book.douban.com/subject/30133440/)**
4646

4747
![《Java编程的逻辑》](https://oss.javaguide.cn/github/javaguide/books/image-20230721153650488.png)
4848

@@ -129,11 +129,11 @@ Java 8 算是一个里程碑式的版本,现在一般企业还是用 Java 8
129129
非常重要!非常重要!特别是 Git 和 Docker。
130130

131131
- **IDEA**:熟悉基本操作以及常用快捷。相关资料: [《IntelliJ IDEA 简体中文专题教程》](https://github.com/judasn/IntelliJ-IDEA-Tutorial)
132-
- **Maven**:强烈建议学习常用框架之前可以提前花几天时间学习一下**Maven**的使用。(到处找 Jar 包,下载 Jar 包是真的麻烦费事,使用 Maven 可以为你省很多事情)。相关阅读:[Maven核心概念总结](https://javaguide.cn/tools/maven/maven-core-concepts.html)
133-
- **Git**:基本的 Git 技能也是必备的,试着在学习的过程中将自己的代码托管在 Github 上。相关阅读:[Git核心概念总结](https://javaguide.cn/tools/git/git-intro.html)
132+
- **Maven**:强烈建议学习常用框架之前可以提前花几天时间学习一下**Maven**的使用。(到处找 Jar 包,下载 Jar 包是真的麻烦费事,使用 Maven 可以为你省很多事情)。相关阅读:[Maven 核心概念总结](https://javaguide.cn/tools/maven/maven-core-concepts.html)
133+
- **Git**:基本的 Git 技能也是必备的,试着在学习的过程中将自己的代码托管在 Github 上。相关阅读:[Git 核心概念总结](https://javaguide.cn/tools/git/git-intro.html)
134134
- **Docker**:学着用 Docker 安装学习中需要用到的软件比如 MySQL ,这样方便很多,可以为你节省不少时间。相关资料:[《Docker - 从入门到实践》](https://yeasy.gitbook.io/docker_practice/)
135135

136-
除了这些工具之外,我强烈建议你一定要搞懂 GitHub 的使用。一些使用 GitHub 的小技巧,你可以看[Github实用小技巧总结](https://javaguide.cn/tools/git/github-tips.html)这篇文章。
136+
除了这些工具之外,我强烈建议你一定要搞懂 GitHub 的使用。一些使用 GitHub 的小技巧,你可以看[Github 实用小技巧总结](https://javaguide.cn/tools/git/github-tips.html)这篇文章。
137137

138138
## 常用框架
139139

@@ -243,7 +243,7 @@ O'Reilly 家族书,性能调优的入门书,我个人觉得性能调优是
243243

244244
![](https://oss.javaguide.cn/github/javaguide/books/20210412232441459.png)
245245

246-
事务与锁、分布式(CAP、分布式事务......)、高并发、高可用 《软件架构设计:大型网站技术架构与业务架构融合之道》 这本书都有介绍到。
246+
事务与锁、分布式(CAP、分布式事务……)、高并发、高可用 《软件架构设计:大型网站技术架构与业务架构融合之道》 这本书都有介绍到。
247247

248248
## 面试
249249

docs/cs-basics/algorithms/linkedlist-algorithm-problems.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ tag:
1515
1616
示例:
1717

18-
```
18+
```plain
1919
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
2020
输出:7 -> 0 -> 8
2121
原因:342 + 465 = 807
@@ -153,7 +153,7 @@ public class Solution {
153153

154154
输出:
155155

156-
```
156+
```plain
157157
5
158158
4
159159
3
@@ -225,7 +225,7 @@ public class Solution {
225225
226226
**示例:**
227227

228-
```
228+
```plain
229229
给定一个链表: 1->2->3->4->5, 和 n = 2.
230230
231231
当删除了倒数第二个节点后,链表变为 1->2->3->5.

docs/cs-basics/algorithms/string-algorithm-problems.md

+11-11
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,14 @@ str.toString().replace(" ","%20");
8181
8282
示例 1:
8383

84-
```
84+
```plain
8585
输入: ["flower","flow","flight"]
8686
输出: "fl"
8787
```
8888

8989
示例 2:
9090

91-
```
91+
```plain
9292
输入: ["dog","racecar","car"]
9393
输出: ""
9494
解释: 输入不存在公共前缀。
@@ -163,7 +163,7 @@ public class Main {
163163
164164
示例 1:
165165

166-
```
166+
```plain
167167
输入:
168168
"abccccdd"
169169
@@ -210,14 +210,14 @@ class Solution {
210210
211211
示例 1:
212212

213-
```
213+
```plain
214214
输入: "A man, a plan, a canal: Panama"
215215
输出: true
216216
```
217217

218218
示例 2:
219219

220-
```
220+
```plain
221221
输入: "race a car"
222222
输出: false
223223
```
@@ -254,15 +254,15 @@ class Solution {
254254
255255
示例 1:
256256

257-
```
257+
```plain
258258
输入: "babad"
259259
输出: "bab"
260260
注意: "aba"也是一个有效答案。
261261
```
262262

263263
示例 2:
264264

265-
```
265+
```plain
266266
输入: "cbbd"
267267
输出: "bb"
268268
```
@@ -307,7 +307,7 @@ class Solution {
307307

308308
示例 1:
309309

310-
```
310+
```plain
311311
输入:
312312
"bbbab"
313313
输出:
@@ -318,7 +318,7 @@ class Solution {
318318

319319
示例 2:
320320

321-
```
321+
```plain
322322
输入:
323323
"cbbd"
324324
输出:
@@ -367,7 +367,7 @@ class Solution {
367367
368368
> 例如: "()()()"的深度是 1,"((()))"的深度是 3。牛牛现在给你一个合法的括号序列,需要你计算出其深度。
369369
370-
```
370+
```plain
371371
输入描述:
372372
输入包括一个合法的括号序列s,s长度length(2 ≤ length ≤ 50),序列中只包含'('和')'。
373373
@@ -377,7 +377,7 @@ class Solution {
377377

378378
示例:
379379

380-
```
380+
```plain
381381
输入:
382382
(())
383383
输出:

docs/cs-basics/algorithms/the-sword-refers-to-offer.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public int Fibonacci(int n) {
7474
7575
**所以这道题其实就是斐波那契数列的问题。**
7676

77-
代码只需要在上一题的代码稍做修改即可。和上一题唯一不同的就是这一题的初始元素变为 1 2 3 5 8.....而上一题为 1 1 2 3 5 .......。另外这一题也可以用递归做,但是递归效率太低,所以我这里只给出了迭代方式的代码。
77+
代码只需要在上一题的代码稍做修改即可。和上一题唯一不同的就是这一题的初始元素变为 1 2 3 5 8……而上一题为 1 1 2 3 5 ……。另外这一题也可以用递归做,但是递归效率太低,所以我这里只给出了迭代方式的代码。
7878

7979
**示例代码:**
8080

@@ -110,7 +110,7 @@ int jumpFloor(int number) {
110110
假设 n>=2,第一步有 n 种跳法:跳 1 级、跳 2 级、到跳 n 级
111111
跳 1 级,剩下 n-1 级,则剩下跳法是 f(n-1)
112112
跳 2 级,剩下 n-2 级,则剩下跳法是 f(n-2)
113-
......
113+
……
114114
跳 n-1 级,剩下 1 级,则剩下跳法是 f(1)
115115
跳 n 级,剩下 0 级,则剩下跳法是 f(0)
116116
所以在 n>=2 的情况下:
@@ -647,7 +647,7 @@ https://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106
647647

648648
此时栈顶 5=5,出栈 5,弹出序列向后一位,此时为 3,,辅助栈里面是 1,2,3
649649

650-
….
650+
.
651651
依次执行,最后辅助栈为空。如果不为空说明弹出序列不是该栈的弹出顺序。
652652

653653
**考察内容:**

docs/cs-basics/data-structure/bloom-filter.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ Bloom Filter 的简单原理图如下:
5656

5757
## 布隆过滤器使用场景
5858

59-
1. 判断给定数据是否存在:比如判断一个数字是否存在于包含大量数字的数字集中(数字集很大,上亿)、 防止缓存穿透(判断请求的数据是否有效避免直接绕过缓存请求数据库)等等、邮箱的垃圾邮件过滤(判断一个邮件地址是否在垃圾邮件列表中)、黑名单功能(判断一个IP地址或手机号码是否在黑名单中)等等。
60-
2. 去重:比如爬给定网址的时候对已经爬取过的 URL 去重、对巨量的 QQ号/订单号去重。
59+
1. 判断给定数据是否存在:比如判断一个数字是否存在于包含大量数字的数字集中(数字集很大,上亿)、 防止缓存穿透(判断请求的数据是否有效避免直接绕过缓存请求数据库)等等、邮箱的垃圾邮件过滤(判断一个邮件地址是否在垃圾邮件列表中)、黑名单功能(判断一个 IP 地址或手机号码是否在黑名单中)等等。
60+
2. 去重:比如爬给定网址的时候对已经爬取过的 URL 去重、对巨量的 QQ 号/订单号去重。
6161

6262
去重场景也需要用到判断给定数据是否存在,因此布隆过滤器主要是为了解决海量数据的存在性问题。
6363

@@ -171,7 +171,7 @@ System.out.println(filter.contains(value2));
171171

172172
Output:
173173

174-
```
174+
```plain
175175
false
176176
false
177177
true
@@ -250,7 +250,7 @@ Redis v4.0 之后有了 Module(模块/插件) 功能,Redis Modules 让 Red
250250

251251
- redis-lua-scaling-bloom-filter(lua 脚本实现):https://github.com/erikdubbelboer/redis-lua-scaling-bloom-filter
252252
- pyreBloom(Python 中的快速 Redis 布隆过滤器):https://github.com/seomoz/pyreBloom
253-
- ......
253+
- ……
254254

255255
RedisBloom 提供了多种语言的客户端支持,包括:Python、Java、JavaScript 和 PHP。
256256

@@ -267,7 +267,7 @@ root@21396d02c252:/data# redis-cli
267267
127.0.0.1:6379>
268268
```
269269

270-
**注意:当前rebloom镜像已经被废弃,官方推荐使用[redis-stack](https://hub.docker.com/r/redis/redis-stack)**
270+
**注意:当前 rebloom 镜像已经被废弃,官方推荐使用[redis-stack](https://hub.docker.com/r/redis/redis-stack)**
271271

272272
### 常用命令一览
273273

docs/cs-basics/data-structure/linear-data-structure.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -322,10 +322,10 @@ myStack.pop();//报错:java.lang.IllegalArgumentException: Stack is empty.
322322

323323
- **阻塞队列:** 阻塞队列可以看成在队列基础上加了阻塞操作的队列。当队列为空的时候,出队操作阻塞,当队列满的时候,入队操作阻塞。使用阻塞队列我们可以很容易实现“生产者 - 消费者“模型。
324324
- **线程池中的请求/任务队列:** 线程池中没有空闲线程时,新的任务请求线程资源时,线程池该如何处理呢?答案是将这些请求放在队列中,当有空闲线程的时候,会循环中反复从队列中获取任务来执行。队列分为无界队列(基于链表)和有界队列(基于数组)。无界队列的特点就是可以一直入列,除非系统资源耗尽,比如:`FixedThreadPool` 使用无界队列 `LinkedBlockingQueue`。但是有界队列就不一样了,当队列满的话后面再有任务/请求就会拒绝,在 Java 中的体现就是会抛出`java.util.concurrent.RejectedExecutionException` 异常。
325-
- 栈:双端队列天生便可以实现栈的全部功能(`push``pop``peek`),并且在Deque接口中已经实现了相关方法。Stack 类已经和 Vector 一样被遗弃,现在在 Java 中普遍使用双端队列(Deque)来实现栈。
325+
- 栈:双端队列天生便可以实现栈的全部功能(`push``pop``peek`),并且在 Deque 接口中已经实现了相关方法。Stack 类已经和 Vector 一样被遗弃,现在在 Java 中普遍使用双端队列(Deque)来实现栈。
326326
- Linux 内核进程队列(按优先级排队)
327327
- 现实生活中的派对,播放器上的播放列表;
328328
- 消息队列
329-
- 等等......
329+
- 等等……
330330

331331
<!-- @include: @article-footer.snippet.md -->

docs/cs-basics/network/arp.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ ARP 的工作原理将分两种场景讨论:
8080

8181
更复杂的情况是,发送主机 A 和接收主机 B 不在同一个子网中,假设一个一般场景,两台主机所在的子网由一台路由器联通。这里需要注意的是,一般情况下,我们说网络设备都有一个 IP 地址和一个 MAC 地址,这里说的网络设备,更严谨的说法应该是一个接口。路由器作为互联设备,具有多个接口,每个接口同样也应该具备不重复的 IP 地址和 MAC 地址。因此,在讨论 ARP 表时,路由器的多个接口都各自维护一个 ARP 表,而非一个路由器只维护一个 ARP 表。
8282

83-
接下来,回顾同一子网内的 MAC 寻址,如果主机 A 发送一个广播问询分组,那么 A 所在的子网内所有设备(接口)都将会捕获该分组,因为该分组的目的 IP 与发送主机A的IP在同一个子网中。但是当目的IP与A不在同一子网时,A所在子网内将不会有设备成功接收该分组。那么,主机 A 应该发送怎样的查询分组呢?整个过程按照时间顺序发生的事件如下:
83+
接下来,回顾同一子网内的 MAC 寻址,如果主机 A 发送一个广播问询分组,那么 A 所在的子网内所有设备(接口)都将会捕获该分组,因为该分组的目的 IP 与发送主机 A 的 IP 在同一个子网中。但是当目的 IP 与 A 不在同一子网时,A 所在子网内将不会有设备成功接收该分组。那么,主机 A 应该发送怎样的查询分组呢?整个过程按照时间顺序发生的事件如下:
8484

8585
1. 主机 A 查询 ARP 表,期望寻找到目标路由器的本子网接口的 MAC 地址。
8686

docs/cs-basics/network/computer-network-xiexiren-summary.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ tag:
55
- 计算机网络
66
---
77

8-
本文是我在大二学习计算机网络期间整理, 大部分内容都来自于谢希仁老师的[《计算机网络》第七版 ](https://www.elias.ltd/usr/local/etc/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%EF%BC%88%E7%AC%AC7%E7%89%88%EF%BC%89%E8%B0%A2%E5%B8%8C%E4%BB%81.pdf)这本书。为了内容更容易理解,我对之前的整理进行了一波重构,并配上了一些相关的示意图便于理解。
8+
本文是我在大二学习计算机网络期间整理, 大部分内容都来自于谢希仁老师的[《计算机网络》第七版](https://www.elias.ltd/usr/local/etc/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%EF%BC%88%E7%AC%AC7%E7%89%88%EF%BC%89%E8%B0%A2%E5%B8%8C%E4%BB%81.pdf)这本书。为了内容更容易理解,我对之前的整理进行了一波重构,并配上了一些相关的示意图便于理解。
99

1010
![](https://oss.javaguide.cn/p3-juejin/fb5d8645cd55484ab0177f25a13e97db~tplv-k3u1fbpfcp-zoom-1.png)
1111

docs/cs-basics/network/dns.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ DNS 服务器在响应查询时,需要查询自己的数据库,数据库中
8686

8787
`CNAME`记录总是指向另一则域名,而非 IP 地址。假设有下述 DNS zone:
8888

89-
```
89+
```plain
9090
NAME TYPE VALUE
9191
--------------------------------------------------
9292
bar.example.com. CNAME foo.example.com.

docs/cs-basics/network/http1.0-vs-http1.1.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,11 @@ HTTP/1.1 的缓存机制在 HTTP/1.0 的基础上,大大增加了灵活性和
5353

5454
## Host 头处理
5555

56-
域名系统(DNS)允许多个主机名绑定到同一个 IP 地址上,但是 HTTP/1.0 并没有考虑这个问题,假设我们有一个资源 URL 是http://example1.org/home.html,HTTP/1.0的请求报文中,将会请求的是`GET /home.html HTTP/1.0`.也就是不会加入主机名。这样的报文送到服务器端,服务器是理解不了客户端想请求的真正网址。
56+
域名系统(DNS)允许多个主机名绑定到同一个 IP 地址上,但是 HTTP/1.0 并没有考虑这个问题,假设我们有一个资源 URL 是http://example1.org/home.html,HTTP/1.0 的请求报文中,将会请求的是`GET /home.html HTTP/1.0`.也就是不会加入主机名。这样的报文送到服务器端,服务器是理解不了客户端想请求的真正网址。
5757

5858
因此,HTTP/1.1 在请求头中加入了`Host`字段。加入`Host`字段的报文头部将会是:
5959

60-
```
60+
```plain
6161
GET /home.html HTTP/1.1
6262
Host: example1.org
6363
```

docs/cs-basics/network/osi-and-tcp-ip-model.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ OSI 七层模型虽然失败了,但是却提供了很多不错的理论基础
132132
- SSH(Secure Shell Protocol,安全的网络传输协议)
133133
- RTP(Real-time Transport Protocol,实时传输协议)
134134
- DNS(Domain Name System,域名管理系统)
135-
- ......
135+
- ……
136136

137137
**传输层协议** :
138138

@@ -154,7 +154,7 @@ OSI 七层模型虽然失败了,但是却提供了很多不错的理论基础
154154
- OSPF(Open Shortest Path First,开放式最短路径优先)
155155
- RIP(Routing Information Protocol,路由信息协议)
156156
- BGP(Border Gateway Protocol,边界网关协议)
157-
- ......
157+
- ……
158158

159159
**网络接口层** :
160160

@@ -163,7 +163,7 @@ OSI 七层模型虽然失败了,但是却提供了很多不错的理论基础
163163
- CSMA/CD 协议
164164
- MAC 协议
165165
- 以太网技术
166-
- ......
166+
- ……
167167

168168
## 网络分层的原因
169169

docs/cs-basics/network/other-network-questions.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ PING 命令的输出结果通常包括以下几部分信息:
290290
3. **往返时间(RTT,Round-Trip Time)**:从发送 ICMP Echo Request(请求报文)到接收到 ICMP Echo Reply(响应报文)的总时间,用来衡量网络连接的延迟。
291291
4. **统计结果(Statistics)**:包括发送的 ICMP 请求数据包数量、接收到的 ICMP 响应数据包数量、丢包率、往返时间(RTT)的最小、平均、最大和标准偏差值。
292292

293-
如果 PING 对应的目标主机无法得到正确的响应,则表明这两个主机之间的连通性存在问题(有些主机或网络管理员可能禁用了对ICMP请求的回复,这样也会导致无法得到正确的响应)。如果往返时间(RTT)过高,则表明网络延迟过高。
293+
如果 PING 对应的目标主机无法得到正确的响应,则表明这两个主机之间的连通性存在问题(有些主机或网络管理员可能禁用了对 ICMP 请求的回复,这样也会导致无法得到正确的响应)。如果往返时间(RTT)过高,则表明网络延迟过高。
294294

295295
### PING 命令的工作原理是什么?
296296

@@ -316,7 +316,7 @@ DNS(Domain Name System)域名管理系统,是当用户使用浏览器访
316316

317317
在一台电脑上,可能存在浏览器 DNS 缓存,操作系统 DNS 缓存,路由器 DNS 缓存。如果以上缓存都查询不到,那么 DNS 就闪亮登场了。
318318

319-
目前 DNS 的设计采用的是分布式、层次数据库结构,**DNS 是应用层协议,它可以在UDP或TCP协议之上运行,端口为 53**
319+
目前 DNS 的设计采用的是分布式、层次数据库结构,**DNS 是应用层协议,它可以在 UDP 或 TCP 协议之上运行,端口为 53**
320320

321321
### DNS 服务器有哪些?
322322

0 commit comments

Comments
 (0)