Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ dist/
packages/*/lib/
traversal-folder-replace-string.py
format-markdown.py
package-lock.json
2 changes: 1 addition & 1 deletion docs/about-the-author/zhishixingqiu-two-years.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ star: 2
3. 免费的东西才是最贵的,加入星球之后无任何其他需要付费的项目,统统免费!
4. 合理的收费是对我付出劳动的一种正向激励,促进我继续输出!同时,这份收入还可以让我们家人过上更好的生活。虽然累点,但也是值得的!

另外,这个是一年的,到明年这个时候结束,差不过够用了。如果服务结束的时候你还需要星球服务的话,可以添加我的微信(**javaguide1024**)领取一个续费优惠卷,半价基础再减 10,记得备注 **“续费”** 。
另外,这个是一年的,到明年这个时候结束,差不过够用了。如果服务结束的时候你还需要星球服务的话,可以添加我的微信(**javaguide1024**)领取一个续费优惠卷,半价基础再减 10,记得备注 **“续费”** 。

## 如何加入?

Expand Down
4 changes: 2 additions & 2 deletions docs/books/database.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,9 @@ GitHub 上也已经有大佬用 Java 实现过一个简易的数据库,介绍
如果你要学习 Redis 的话,强烈推荐下面这两本书:

- [《Redis 设计与实现》](https://book.douban.com/subject/25900156/) :主要是 Redis 理论知识相关的内容,比较全面。我之前写过一篇文章 [《7 年前,24 岁,出版了一本 Redis 神书》](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247507030&idx=1&sn=0a5fd669413991b30163ab6f5834a4ad&chksm=cea1939df9d61a8b93925fae92f4cee0838c449534e60731cfaf533369831192e296780b32a6&token=709354671&lang=zh_CN&scene=21#wechat_redirect) 来介绍这本书。
- [《Redis核心原理与实践》 ](https://book.douban.com/subject/26612779/):主要是结合源码来分析 Redis 的重要知识点比如各种数据结构和高级特性。
- [《Redis 核心原理与实践》 ](https://book.douban.com/subject/26612779/):主要是结合源码来分析 Redis 的重要知识点比如各种数据结构和高级特性。

![《Redis 设计与实现》和《Redis 设计与实现》](https://oss.javaguide.cn/github/javaguide/books/redis-books.png)
![《Redis 设计与实现》和《Redis 设计与实现》](https://oss.javaguide.cn/github/javaguide/books/redis-books.png)

另外,[《Redis 开发与运维》](https://book.douban.com/subject/26971561/) 这本书也非常不错,既有基础介绍,又有一线开发运维经验分享。

Expand Down
2 changes: 1 addition & 1 deletion docs/cs-basics/algorithms/linkedlist-algorithm-problems.md
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ public class Solution {
return dummy.next;
}
}
``
```

**进阶——一次遍历法:**

Expand Down
2 changes: 1 addition & 1 deletion docs/database/redis/redis-questions-02.md
Original file line number Diff line number Diff line change
Expand Up @@ -435,7 +435,7 @@ OK

这里以阿里云 Redis 为例说明,它支持 hotkey 实时分析、发现,文档地址:<https://www.alibabacloud.com/help/zh/apsaradb-for-redis/latest/use-the-real-time-key-statistics-feature> 。

![阿里云Key分析](https://oss.javaguide.cn/github/javaguide/database/redis/aliyun-key-analysis.png)
![阿里云Key分析](https://oss.javaguide.cn/github/javaguide/database/redis/aliyun-key-analysis.png)

#### 如何解决 hotkey?

Expand Down
2 changes: 1 addition & 1 deletion docs/distributed-system/rpc/dubbo.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ tag:
- rpc
---

::: tip
::: tip

- Dubbo3 已经发布,这篇文章是基于 Dubbo2 写的。Dubbo3 基于 Dubbo2 演进而来,在保持原有核心功能特性的同时, Dubbo3 在易用性、超大规模微服务实践、云原生基础设施适配、安全设计等几大方向上进行了全面升级。
- 本文中的很多链接已经失效,主要原因是因为 Dubbo 官方文档进行了修改导致 URL 失效。
Expand Down
1 change: 0 additions & 1 deletion docs/distributed-system/rpc/rpc-intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,4 +137,3 @@ Dubbo 也是 Spring Cloud Alibaba 里面的一个组件。
## 既然有了 HTTP 协议,为什么还要有 RPC ?

关于这个问题的详细答案,请看这篇文章:[有了 HTTP 协议,为什么还要有 RPC ?](http&rpc.md)

Original file line number Diff line number Diff line change
Expand Up @@ -131,4 +131,4 @@ tag:

## 结语

以上就是我对互联网从业技术人员十年成长之路的心得,希望在你困惑和关键选择的时候可以帮助到你。如果我的只言片语能够在未来的某个时间帮助到你哪怕一点,那将是我莫大的荣幸。
以上就是我对互联网从业技术人员十年成长之路的心得,希望在你困惑和关键选择的时候可以帮助到你。如果我的只言片语能够在未来的某个时间帮助到你哪怕一点,那将是我莫大的荣幸。
2 changes: 1 addition & 1 deletion docs/high-quality-technical-articles/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,5 @@
## 工作

- [新入职一家公司如何快速进入工作状态](./work/get-into-work-mode-quickly-when-you-join-a-company.md)
- [32条总结教你提升职场经验](./work/32-tips-improving-career.md)
- [32 条总结教你提升职场经验](./work/32-tips-improving-career.md)
- [聊聊大厂的绩效考核](./work/employee-performance.md)
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ tag:
- 思维和技能不要受限于前端、后端、测试等角色,把自己定位成业务域问题的终结者;
- 好奇和热爱是成长最大的捷径,长期主义者会认同自己的工作价值,甚至要高于组织当下给的认同(KPI)。

## 功夫在日常
## 功夫在日常

- 每行代码要代表自己当下的最高水平,你觉得无所谓的小细节,有可能就是在晋升场上伤害你的暗箭;
- 双周报不是工作日志流水账,不要被时间推着走,最起码要知道下次双周报里会有什么(小目标驱动);
Expand Down Expand Up @@ -67,4 +67,4 @@ tag:
- 船长最重要的事情不是造船,而是激发水手对大海的向往;
- Leader 的天然职责是让团队活下去,唯一的途径是实现上级、老板、公司经营者的目标,越是艰难的时候越明显;
- Leader 的重要职责是识别团队需要被做的事情,并坚定信念,使众人行,越是艰难的时候越要坚定;
- Leader 应该让自己遇到的每个人都感觉自己很重要、被需要。
- Leader 应该让自己遇到的每个人都感觉自己很重要、被需要。
2 changes: 1 addition & 1 deletion docs/interview-preparation/interview-experience.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ icon: experience

![](https://oss.javaguide.cn/xingqiu/image-20220628101805897.png)

相比于牛客网或者其他网站的面经,《Java面试指北》中整理的面经质量更高,并且,我会提供优质的参考资料。
相比于牛客网或者其他网站的面经,《Java 面试指北》中整理的面经质量更高,并且,我会提供优质的参考资料。

有很多同学要说了:“为什么不直接给出具体答案呢?”。主要原因有如下两点:

Expand Down
4 changes: 1 addition & 3 deletions docs/interview-preparation/resume-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -229,12 +229,10 @@ FAB 法则由下面 3 个单词组成(FAB 法则的名字就是由它们的首

精简表述,突出亮点。校招简历建议不要超过 2 页,社招简历建议不要超过 3 页。如果内容过多的话,不需要非把内容压缩到一页,保持排版干净整洁就可以了。

看了几千份简历,有少部分同学的简历页数都接近10页了,让我头皮发麻。
看了几千份简历,有少部分同学的简历页数都接近 10 页了,让我头皮发麻。

![简历页数过多](https://oss.javaguide.cn/zhishixingqiu/image-20230508223646164.png)



### 避免语义模糊

尽量避免主观表述,少一点语义模糊的形容词。表述要简洁明了,简历结构要清晰。
Expand Down
14 changes: 7 additions & 7 deletions docs/java/collection/java-collection-questions-02.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,11 @@ head:

如果你看过 `HashSet` 源码的话就应该知道:`HashSet` 底层就是基于 `HashMap` 实现的。(`HashSet` 的源码非常非常少,因为除了 `clone()`、`writeObject()`、`readObject()`是 `HashSet` 自己不得不实现之外,其他方法都是直接调用 `HashMap` 中的方法。

| `HashMap` | `HashSet` |
| :------------------------------------: | :----------------------------------------------------------: |
| 实现了 `Map` 接口 | 实现 `Set` 接口 |
| 存储键值对 | 仅存储对象 |
| 调用 `put()`向 map 中添加元素 | 调用 `add()`方法向 `Set` 中添加元素 |
| `HashMap` | `HashSet` |
| :------------------------------------: | :----------------------------------------------------------------------------------------------------------------------: |
| 实现了 `Map` 接口 | 实现 `Set` 接口 |
| 存储键值对 | 仅存储对象 |
| 调用 `put()`向 map 中添加元素 | 调用 `add()`方法向 `Set` 中添加元素 |
| `HashMap` 使用键(Key)计算 `hashcode` | `HashSet` 使用成员对象来计算 `hashcode` 值,对于两个对象来说 `hashcode` 可能相同,所以`equals()`方法用来判断对象的相等性 |

### HashMap 和 TreeMap 区别
Expand Down Expand Up @@ -286,11 +286,11 @@ JDK1.7 及之前版本的 `HashMap` 在多线程环境下扩容操作可能存

为了解决这个问题,JDK1.8 版本的 HashMap 采用了尾插法而不是头插法来避免链表倒置,使得插入的节点永远都是放在链表的末尾,避免了链表中的环形结构。但是还是不建议在多线程下使用 `HashMap`,因为多线程下使用 `HashMap` 还是会存在数据覆盖的问题。并发环境下,推荐使用 `ConcurrentHashMap` 。

一般面试中这样介绍就差不多,不需要记各种细节,个人觉得也没必要记。如果想要详细了解 `HashMap` 扩容导致死循环问题,可以看看耗子叔的这篇文章:[Java HashMap 的死循环](https://coolshell.cn/articles/9606.html)。
一般面试中这样介绍就差不多,不需要记各种细节,个人觉得也没必要记。如果想要详细了解 `HashMap` 扩容导致死循环问题,可以看看耗子叔的这篇文章:[Java HashMap 的死循环](https://coolshell.cn/articles/9606.html)。

### HashMap 为什么线程不安全?

JDK1.7 及之前版本,在多线程环境下,`HashMap` 扩容时会造成死循环和数据丢失的问题。
JDK1.7 及之前版本,在多线程环境下,`HashMap` 扩容时会造成死循环和数据丢失的问题。

数据丢失这个在 JDK1.7 和 JDK 1.8 中都存在,这里以 JDK 1.8 为例进行介绍。

Expand Down
2 changes: 1 addition & 1 deletion docs/java/concurrent/java-concurrent-questions-01.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ public class MultiThread {

线程安全和不安全是在多线程环境下对于同一份数据的访问是否能够保证其正确性和一致性的描述。

- 线程安全指的是在多线程环境下,对于同一份数据,不管有多少个线程同时访问,都能保证这份数据的正确性和一致性。
- 线程安全指的是在多线程环境下,对于同一份数据,不管有多少个线程同时访问,都能保证这份数据的正确性和一致性。
- 线程不安全则表示在多线程环境下,对于同一份数据,多个线程同时访问时可能会导致数据混乱、错误或者丢失。

## 说说线程的生命周期和状态?
Expand Down
2 changes: 1 addition & 1 deletion docs/java/jvm/jvm-in-action.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,4 @@ JVM 线上问题排查和性能调优也是面试常问的一个问题,尤其

[Java 中 9 种常见的 CMS GC 问题分析与解决 - 美团技术团 - 2020](https://tech.meituan.com/2020/11/12/java-9-cms-gc.html)

这篇文章共 2w+ 字,详细介绍了 GC 基础,总结了 CMS GC 的一些常见问题分析与解决办法。
这篇文章共 2w+ 字,详细介绍了 GC 基础,总结了 CMS GC 的一些常见问题分析与解决办法。
3 changes: 0 additions & 3 deletions docs/javaguide/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,3 @@ JavaGuide 这个项目诞生一年左右就有出版社的老师联系我了,
我也知道大家不喜欢营销,所以我会让自己控制好一个度。我一不割韭菜,二不贩卖焦虑,仅仅赚一份小钱提升家人生活品质。

**用心做内容,真心希望能帮助到其他人。**



2 changes: 1 addition & 1 deletion docs/zhuanlan/handwritten-rpc-framework.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@ category: 知识星球

## 星球限时优惠

<!-- @include: @the-way-join-planet.snippet.md -->
<!-- @include: @the-way-join-planet.snippet.md -->
2 changes: 1 addition & 1 deletion docs/zhuanlan/java-mian-shi-zhi-bei.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,4 @@ star: 5

## 星球限时优惠

<!-- @include: @the-way-join-planet.snippet.md -->
<!-- @include: @the-way-join-planet.snippet.md -->
2 changes: 1 addition & 1 deletion docs/zhuanlan/source-code-reading.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ star: true

## 星球限时优惠

<!-- @include: @the-way-join-planet.snippet.md -->
<!-- @include: @the-way-join-planet.snippet.md -->
Loading