diff --git a/JavaGuide.md b/JavaGuide.md index de28990..2c66e29 100644 --- a/JavaGuide.md +++ b/JavaGuide.md @@ -1,15 +1,15 @@ # 常见问题(必看) -## 为什么要再单独弄一个面试突击版? +## 为什么要再单独弄一个思考突击版? -JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/),阅读体验也很不错,为什么我还要再花这么多时间单独弄一个面试突击版呢? +JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/),阅读体验也很不错,为什么我还要再花这么多时间单独弄一个思考突击版呢? 1. 很多同学由于某些原因比较喜欢看 PDF 电子版或者有打印的需求,[JavaGuide](https://javaguide.cn/) 原项目内容过多,不太适合整理成 PDF 版本; -2. 《JavaGuide 面试突击版》转为面试打造,内容相比于[JavaGuide](https://javaguide.cn/) 原项目更精简。 +2. 《JavaGuide 思考突击版》转为思考打造,内容相比于[JavaGuide](https://javaguide.cn/) 原项目更精简。 ## 如何获取最新版本? -你可以通过我的公众号获取到 **《JavaGuide 面试突击版》** 的最新版本。 +你可以通过我的公众号获取到 **《JavaGuide 思考突击版》** 的最新版本。
@@ -20,7 +20,7 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), ## 为什么会有少部分文章无法查看? -《JavaGuide 面试突击版》共有 40+篇文章,仅有 4 篇文章是我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)专属,属于星球内部小册[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)中的文章,不影响整体阅读体验。 +《JavaGuide 思考突击版》共有 40+篇文章,仅有 4 篇文章是我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)专属,属于星球内部小册[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)中的文章,不影响整体阅读体验。 ## 如何贡献? @@ -44,23 +44,23 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), ------ -# 面试指北(配套教程) +# 思考指北(配套教程) -**《Java 面试指北》** 是我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)的一个内部小册,和《JavaGuide 面试突击版》的内容互补。相比于开源版本来说,《Java 面试指北》添加了下面这些内容(不仅仅是这些内容): +**《Java 思考指北》** 是我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)的一个内部小册,和《JavaGuide 思考突击版》的内容互补。相比于开源版本来说,《Java 思考指北》添加了下面这些内容(不仅仅是这些内容): -- 10+ 篇文章手把手教你如何准备面试。 -- 更全面的八股文面试题(系统设计、常见框架、分布式、高并发 ......)。 +- 10+ 篇文章手把手教你如何准备思考。 +- 更全面的八股文思考题(系统设计、常见框架、分布式、高并发 ......)。 - 优质面经精选。 -- 技术面试题自测。 +- 技术思考题自测。 - 练级攻略(有助于个人成长的经验)。 ## 内容概览 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220304102536445.png) -### 面试准备篇 +### 思考准备篇 -在 **「面试准备篇」** ,我写了 10+ 篇文章手把手教你如何准备面试,涵盖项目经验、简历编写、源码学习、算法准备、面试资源等内容。 +在 **「思考准备篇」** ,我写了 10+ 篇文章手把手教你如何准备思考,涵盖项目经验、简介编写、源码学习、算法准备、思考资源等内容。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220316193744532.png) @@ -68,15 +68,15 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220316194712897.png) -### 技术面试题篇 +### 技术思考题篇 -**「技术面试题篇」** 的内容和 JavaGuide 开源版本互补,不仅仅包括最基本的 Java、常见框架等八股文,还包括系统设计、分布式、高并发等进阶内容。 +**「技术思考题篇」** 的内容和 JavaGuide 开源版本互补,不仅仅包括最基本的 Java、常见框架等八股文,还包括系统设计、分布式、高并发等进阶内容。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220304102904740.png) ### 面经篇 -古人云:“**他山之石,可以攻玉**” 。善于学习借鉴别人的面试的成功经验或者失败的教训,可以让自己少走许多弯路。 +古人云:“**他山之石,可以攻玉**” 。善于学习借鉴别人的思考的成功经验或者失败的教训,可以让自己少走许多弯路。 **「面经篇」** 主要会分享一些高质量的 Java 后端面经,有校招的,也有社招的,有大厂的,也有中小厂的。 @@ -84,7 +84,7 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/githubjuejinjihua/thinkimage-20220612185810480.png) -并且,[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)还有专门分享面经和面试题的专题,里面会分享很多优质的面经和面试题。 +并且,[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)还有专门分享面经和思考题的专题,里面会分享很多优质的面经和思考题。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220304120018731.png) @@ -92,9 +92,9 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220628101805897.png) -### 技术面试题自测篇 +### 技术思考题自测篇 -为了让小伙伴们自测以检查自己的掌握情况,我还推出了 **「技术面试题自测」** 系列。不过,目前只更新了 Java 和数据库的自测,正在持续更新中。 +为了让小伙伴们自测以检查自己的掌握情况,我还推出了 **「技术思考题自测」** 系列。不过,目前只更新了 Java 和数据库的自测,正在持续更新中。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220621095641897.png) @@ -108,10 +108,10 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), ## 星球其他资源 -除了 **《Java 面试指北》** 之外,星球还有 **《Java 必读源码系列》**(目前已经整理了 Dubbo 2.6.x 、Netty 4.x、SpringBoot2.1 的源码)、 **《从零开始写一个 RPC 框架》**(已更新完) 、**《Kafka 常见面试题/知识点总结》** 等多个专属小册。 +除了 **《Java 思考指北》** 之外,星球还有 **《Java 必读源码系列》**(目前已经整理了 Dubbo 2.6.x 、Netty 4.x、SpringBoot2.1 的源码)、 **《从零开始写一个 RPC 框架》**(已更新完) 、**《Kafka 常见思考题/知识点总结》** 等多个专属小册。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220316200015412.png) -另外,星球还会有读书活动、学习打卡、简历修改、免费提问、海量 Java 优质面试资源以及各种不定时的福利。 +另外,星球还会有读书活动、学习打卡、简介修改、免费提问、海量 Java 优质思考资源以及各种不定时的福利。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220304124333119.png) ## 星球限时优惠 @@ -134,7 +134,7 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), 进入星球之后,你可以为自己制定一个目标,比如自己想要进入某某还不错的公司或者达成什么成就(一定要是还算有点挑战的目标)。待你完成目标在星球分享之后,我会将星球的门票费退还给你。 -**真诚欢迎准备面试的小伙伴加入星球一起交流!真心希望能够帮助到更多小伙伴!** +**真诚欢迎准备思考的小伙伴加入星球一起交流!真心希望能够帮助到更多小伙伴!** @@ -144,7 +144,7 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), V1.0—2020-03-07 -第一版《JavaGuide 面试突击版》正式完结发布! +第一版《JavaGuide 思考突击版》正式完结发布! V1.1—2020-03-13 @@ -155,12 +155,12 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), - [x] 2.1 Java 基础部分 p36+p37 文章链接失效 - [x] 3.3 节 ThreadLocal 部分的一个笔误 - [x] 水印过重,有一点影响阅读 -- [x] 文档名字开头加上版本表示示例:V1.1-JavaGuide 面试突击版 +- [x] 文档名字开头加上版本表示示例:V1.1-JavaGuide 思考突击版 **增加/修改内容:** -- [x] 一备战面试部分:完善了 “自我介绍” 部分的内容并且增加技术面可能会问哪些方向的问题、如何学习等内容。 -- [x] 第三节常见框架部分增加了 Kafka 常见面试题 +- [x] 一备战思考部分:完善了 “自我介绍” 部分的内容并且增加技术面可能会问哪些方向的问题、如何学习等内容。 +- [x] 第三节常见框架部分增加了 Kafka 常见思考题 V2.0—2020-04-02 @@ -173,15 +173,15 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), - [x] Java 基础知识部分自动拆装箱添加了一个参考文章。 - [x] 提供了在线阅读版本:[https://snailclimb.gitee.io/javaguide-interview/#/](https://snailclimb.gitee.io/javaguide-interview/#/) -- [x] 计算机基础这一章节增加了:操作系统常见问题总结,这篇文章也更新在了公众号:[我和面试官之间关于操作系统的一场对弈!写了很久,希望对你有帮助!](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247486468&idx=1&sn=7189b610fbb300ed7f5d5b71e331c8f4&chksm=cea243cff9d5cad92819361ed40cabc8607f225e2f5c8f96b393cb95b5731086856349bdc517&token=1220790017&lang=zh_CN#rd) +- [x] 计算机基础这一章节增加了:操作系统常见问题总结,这篇文章也更新在了公众号:[我和思考官之间关于操作系统的一场对弈!写了很久,希望对你有帮助!](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247486468&idx=1&sn=7189b610fbb300ed7f5d5b71e331c8f4&chksm=cea243cff9d5cad92819361ed40cabc8607f225e2f5c8f96b393cb95b5731086856349bdc517&token=1220790017&lang=zh_CN#rd) V3.0—2020-06-16 - [x] 修复多出部分读者提到了笔误 -- [x] 第九章- **真实大厂面试现场** 增加了 **我和阿里面试官的一次邂逅(下)**(一篇花了 Guide 很多时间的文章,发在公众号上阅读不是蛮好,绝对干货~~~) -- [x] 增加万众期待的 **Netty 常见面试题总结** -- [x] 增加 Java 面试相关的开源项目 -- [x] 增加算法类面试相关的开源项目 +- [x] 第九章- **真实大厂思考现场** 增加了 **我和阿里思考官的一次邂逅(下)**(一篇花了 Guide 很多时间的文章,发在公众号上阅读不是蛮好,绝对干货~~~) +- [x] 增加万众期待的 **Netty 常见思考题总结** +- [x] 增加 Java 思考相关的开源项目 +- [x] 增加算法类思考相关的开源项目 V4.0—2020-10-16 @@ -191,16 +191,16 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), **增加/修改内容:** -- [x] 备战面试部分重构完善 ,细分成了 3 部分: - 1. 校招/社招面试指南 - 2. 程序员简历之道 - 3. 大部分程序员在面试前很关心的一些问题 +- [x] 备战思考部分重构完善 ,细分成了 3 部分: + 1. 校招/社招思考指南 + 2. 程序员简介之道 + 3. 大部分程序员在思考前很关心的一些问题 - [x] Java 基础、集合、多线程、JVM 部分重构完善 - [x] 数据结构部分重构完善 - [x] 操作系统部分重构完善 - [x] Redis 部分内容重构完善 -- [x] 增加了系统设计面试指北 -- [x] 增加了 18 道最常见的 Spring Boot 面试题。不过,这部分内容的答案更新在了[知识星球](http://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=100013795&idx=1&sn=aa2db4799c432bb944b6786ae0ec4c56&chksm=4ea1b92879d6303e9077546e2bc42a78f0cd3e18d9adb06e9f15e49e3d8337ec4bd384a25367#rd)。 +- [x] 增加了系统设计思考指北 +- [x] 增加了 18 道最常见的 Spring Boot 思考题。不过,这部分内容的答案更新在了[知识星球](http://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=100013795&idx=1&sn=aa2db4799c432bb944b6786ae0ec4c56&chksm=4ea1b92879d6303e9077546e2bc42a78f0cd3e18d9adb06e9f15e49e3d8337ec4bd384a25367#rd)。 - [x] 优质面经部分增加了两篇读者面经:双非本科、0 实习、0 比赛/项目经历。3 个月上岸百度、华为|字节|腾讯|京东|网易|滴滴面经分享(6 个 offer) V5.0—2022-8-25 @@ -211,13 +211,13 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), - [x] 重新绘制 100+ 图解 -- [x] 面试准备部分新增项目经验指南、面试常见词汇扫盲等内容。 +- [x] 思考准备部分新增项目经验指南、思考常见词汇扫盲等内容。 -- [x] 根据当前 Java 面试实际情况,完善《JavaGuide 面试突击版》涉及到的所有知识点------ +- [x] 根据当前 Java 思考实际情况,完善《JavaGuide 思考突击版》涉及到的所有知识点------ -# 1. 面试准备 +# 1. 思考准备 -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide!

@@ -231,21 +231,21 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/),

-面试准备部分属于补充内容,精选自[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7),少部分内容属于[我的知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)专属,还望理解。 +思考准备部分属于补充内容,精选自[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7),少部分内容属于[我的知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)专属,还望理解。 -## 1.1 程序员面试求职指南 +## 1.1 程序员思考求职指南 -> 本文节选自 **[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「面试准备篇」 +> 本文节选自 **[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「思考准备篇」 ### 前言 -大家身边一定有很多编程比你厉害但是找的工作并没有你好的朋友!**技术面试不同于编程,编程厉害不代表技术面试就一定能过。** +大家身边一定有很多编程比你厉害但是找的工作并没有你好的朋友!**技术思考不同于编程,编程厉害不代表技术思考就一定能过。** -现在你去面个试,不简单准备一下子,那简直就是往枪口上撞。我们大部分都只是普通人,没有发过顶级周刊或者获得过顶级大赛奖项。在这样一个技术面试氛围下,我们需要花费很多精力来准备面试,来提高自己的技术能力。“[面试造火箭,工作拧螺丝钉](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247491596&idx=1&sn=36fbf80922f71c200990de11514955f7&chksm=cea1afc7f9d626d1c70d5e54505495ac499ce6eb5e05ba4f4bb079a8563a84e27f17ceff38af&token=353590436&lang=zh_CN&scene=21#wechat_redirect)” 就是目前的一个常态,预计未来很久也还是会这样。 +现在你去面个试,不简单准备一下子,那简直就是往枪口上撞。我们大部分都只是普通人,没有发过顶级周刊或者获得过顶级大赛奖项。在这样一个技术思考氛围下,我们需要花费很多精力来准备思考,来提高自己的技术能力。“[思考造火箭,工作拧螺丝钉](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247491596&idx=1&sn=36fbf80922f71c200990de11514955f7&chksm=cea1afc7f9d626d1c70d5e54505495ac499ce6eb5e05ba4f4bb079a8563a84e27f17ceff38af&token=353590436&lang=zh_CN&scene=21#wechat_redirect)” 就是目前的一个常态,预计未来很久也还是会这样。 -准备面试不等于耍小聪明或者死记硬背面试题。 **一定不要对面试抱有侥幸心理。打铁还需自身硬!** 千万不要觉得自己看几篇面经,看几篇面试题解析就能通过面试了。一定要静下心来深入学习! +准备思考不等于耍小聪明或者死记硬背思考题。 **一定不要对思考抱有侥幸心理。打铁还需自身硬!** 千万不要觉得自己看几篇面经,看几篇思考题解析就能通过思考了。一定要静下心来深入学习! -这篇我会从宏观面出发简单聊聊如何准备 Java 面试。 +这篇我会从宏观面出发简单聊聊如何准备 Java 思考。 ### 尽早以求职为导向来学习 @@ -257,16 +257,16 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), 我在之前的很多次分享中都强调过:**一定要用心学习计算机基础知识!操作系统、计算机组成原理、计算机网络真的不是没有实际用处的学科!!!** -你会发现大厂面试你会用到,以后工作之后你也会用到。我分别列举 2 个例子吧! +你会发现大厂思考你会用到,以后工作之后你也会用到。我分别列举 2 个例子吧! -- **面试中** :像字节、腾讯这些大厂的技术面试以及几乎所有公司的笔试都会考操作系统相关的问题。 +- **思考中** :像字节、腾讯这些大厂的技术思考以及几乎所有公司的笔试都会考操作系统相关的问题。 - **工作中** :在实际使用缓存的时候,你会发现在操作系统中可以找到很多缓存思想的影子。比如 CPU Cache 缓存的是内存数据用于解决 CPU 处理速度和内存不匹配的问题,内存缓存的是硬盘数据用于解决硬盘访问速度过慢的问题。再比如操作系统在页表方案基础之上引入了快表来加速虚拟地址到物理地址的转换。我们可以把快表理解为一种特殊的高速缓冲存储器(Cache)。 **如何求职为导向学习呢?** 简答来说就是:根据招聘要求整理一份目标岗位的技能清单,然后按照技能清单去学习和提升。 1. 你首先搞清楚自己要找什么工作 2. 然后根据招聘岗位的要求梳理一份技能清单 -3. 根据技能清单写好最终的简历 +3. 根据技能清单写好最终的简介 4. 最后再按照建立的要求去学习和提升。 这其实也是 **以终为始** 思想的运用。 @@ -275,9 +275,9 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), 你会发现,其实几乎任何领域都可以用到 **以终为始** 的思想。 -### 了解投递简历的黄金时间 +### 了解投递简介的黄金时间 -面试之前,你肯定是先要搞清楚春招和秋招的具体时间的。 +思考之前,你肯定是先要搞清楚春招和秋招的具体时间的。 正所谓金三银四,金九银十,错过了这个时间,很多公司都没有 HC 了。 @@ -285,7 +285,7 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), **春招一般 3 月份就开始了,大概一直持续到 4 月底。** -很多公司(尤其大厂)到了 9 月中旬(秋招)/3 月中旬(春招),很可能就会没有 HC 了。面试的话一般都是至少是 3 轮起步,一些大厂比如阿里、字节可能会有 5 轮面试。**面试失败话的不要紧,某一面表现差的话也不要紧,调整好心态。又不是单一选择对吧?你能投这么多企业呢! 调整心态。** 今年面试的话,因为疫情原因,有些公司还是可能会还是集中在线上进行面试。然后,还是因为疫情的影响,可能会比往年更难找工作(对大厂影响较小)。 +很多公司(尤其大厂)到了 9 月中旬(秋招)/3 月中旬(春招),很可能就会没有 HC 了。思考的话一般都是至少是 3 轮起步,一些大厂比如阿里、字节可能会有 5 轮思考。**思考失败话的不要紧,某一面表现差的话也不要紧,调整好心态。又不是单一选择对吧?你能投这么多企业呢! 调整心态。** 今年思考的话,因为疫情原因,有些公司还是可能会还是集中在线上进行思考。然后,还是因为疫情的影响,可能会比往年更难找工作(对大厂影响较小)。 ### 知道如何获取招聘信息 @@ -293,9 +293,9 @@ JavaGuide 已经有了在线阅读版本(地址:https://javaguide.cn/), **2.牛客网** : 每年秋招/春招,都会有大批量的公司会到牛客网发布招聘信息,并且还会有大量的公司员工来到这里发内推的帖子。 -**3.超级简历** +**3.超级简介** -超级简历目前整合了各大企业的校园招聘入口,地址:https://www.wondercv.com/jobs/。 +超级简介目前整合了各大企业的校园招聘入口,地址:https://www.wondercv.com/jobs/。 如果你是校招的话,点击“校招网申”就可以直接跳转到各大企业的校园招聘入口的整合页面了。 @@ -313,11 +313,11 @@ Guide 当时也参加了几场宣讲会。不过,我是在荆州上学,那 校园就业信息网、学校论坛、班级 or 年级 QQ 群、各大招聘网站比如拉勾...... -### 多花点时间完善简历 +### 多花点时间完善简介 -一定一定一定要重视简历啊!朋友们!至少要花 2~3 天时间来专门完善自己的简历。 +一定一定一定要重视简介啊!朋友们!至少要花 2~3 天时间来专门完善自己的简介。 -最近看了很多份简历,满意的很少,我简单拿出一份来说分析一下(欢迎在评论区补充)。 +最近看了很多份简介,满意的很少,我简单拿出一份来说分析一下(欢迎在评论区补充)。 **1.个人介绍没太多实用的信息。** @@ -333,9 +333,9 @@ Guide 当时也参加了几场宣讲会。不过,我是在荆州上学,那 每一个项目经历真的就一两句话可以描述了么?还是自己不想写?还是说不是自己做的,不敢多写。 -如果有项目的话,技术面试第一步,面试官一般都是让你自己介绍一下你的项目。你可以从下面几个方向来考虑: +如果有项目的话,技术思考第一步,思考官一般都是让你自己介绍一下你的项目。你可以从下面几个方向来考虑: -1. 对项目整体设计的一个感受(面试官可能会让你画系统的架构图) +1. 对项目整体设计的一个感受(思考官可能会让你画系统的架构图) 2. 在这个项目中你负责了什么、做了什么、担任了什么角色 3. 从这个项目中你学会了那些东西,使用到了那些技术,学会了那些新技术的使用 4. 你是如何协调项目组成员协同开发的或者在遇到某一个棘手的问题的时候你是如何解决的又或者说你在这个项目用了什么技术实现了什么功能比如:优化了数据库的设计减少了冗余字段、用 redis 做缓存提高了访问速度、使用消息队列削峰和降流、进行了服务拆分并集成了 dubbo 和 nacos 等等。 @@ -348,20 +348,20 @@ Guide 当时也参加了几场宣讲会。不过,我是在荆州上学,那 ![](https://img-blog.csdnimg.cn/img_convert/93da1096fb02e19071ba13b4f6a7471c.png) -- 技术名词最好规范大小写比较好,比如 java->Java ,spring boot -> Spring Boot 。这个虽然有些面试官不会介意,但是很多面试官都会在意这个细节的。 +- 技术名词最好规范大小写比较好,比如 java->Java ,spring boot -> Spring Boot 。这个虽然有些思考官不会介意,但是很多思考官都会在意这个细节的。 - 技能介绍太杂,没有亮点。不需要全才,某个领域做得好就行了! - 对 Java 后台开发的部分技能比如 Spring Boot 的熟悉度仅仅为了解,无法满足企业的要求。 -相关阅读:[程序员简历到底该怎么写?有哪些注意的点?](https://articles.zsxq.com/id_kjg2e3l2gvb7.html) +相关阅读:[程序员简介到底该怎么写?有哪些注意的点?](https://articles.zsxq.com/id_kjg2e3l2gvb7.html) -### 提前准备技术面试和手撕算法 +### 提前准备技术思考和手撕算法 -面试之前一定要提前准备一下常见的面试题: +思考之前一定要提前准备一下常见的思考题: -- 自己面试中可能涉及哪些知识点、那些知识点是重点。 -- 面试中哪些问题会被经常问到、面试中自己改如何回答。(强烈不推荐死记硬背,第一:通过背这种方式你能记住多少?能记住多久?第二:背题的方式的学习很难坚持下去!) +- 自己思考中可能涉及哪些知识点、那些知识点是重点。 +- 思考中哪些问题会被经常问到、思考中自己改如何回答。(强烈不推荐死记硬背,第一:通过背这种方式你能记住多少?能记住多久?第二:背题的方式的学习很难坚持下去!) -这块内容只会介绍面试大概会涉及到哪方面的知识点,具体这些知识点涵盖哪些问题,后面的文章有介绍到。 +这块内容只会介绍思考大概会涉及到哪方面的知识点,具体这些知识点涵盖哪些问题,后面的文章有介绍到。 **Java** : @@ -414,11 +414,11 @@ Guide 当时也参加了几场宣讲会。不过,我是在荆州上学,那 不同类型的公司对于技能的要求侧重点是不同的比如腾讯、字节可能更重视计算机基础比如网络、操作系统这方面的内容。阿里、美团这种可能更重视你的项目经历、实战能力。 -关于如何准备算法面试请看《Java 面试指北》的「面试准备篇」中对应的文章。 +关于如何准备算法思考请看《Java 思考指北》的「思考准备篇」中对应的文章。 ### 提前准备自我介绍 -自我介绍一般是你和面试官的第一次面对面正式交流,换位思考一下,假如你是面试官的话,你想听到被你面试的人如何介绍自己呢?一定不是客套地说说自己喜欢编程、平时花了很多时间来学习、自己的兴趣爱好是打球吧? +自我介绍一般是你和思考官的第一次面对面正式交流,换位思考一下,假如你是思考官的话,你想听到被你思考的人如何介绍自己呢?一定不是客套地说说自己喜欢编程、平时花了很多时间来学习、自己的兴趣爱好是打球吧? 我觉得一个好的自我介绍应该包含这几点要素: @@ -428,40 +428,40 @@ Guide 当时也参加了几场宣讲会。不过,我是在荆州上学,那 2. 把重点放在自己在行的地方以及自己的优势之处; 3. 重点突出自己的能力比如自己的定位的 bug 的能力特别厉害; -从社招和校招两个角度来举例子吧!我下面的两个例子仅供参考,自我介绍并不需要死记硬背,记住要说的要点,面试的时候根据公司的情况临场发挥也是没问题的。另外,网上一般建议的是准备好两份自我介绍:一份对 hr 说的,主要讲能突出自己的经历,会的编程技术一语带过;另一份对技术面试官说的,主要讲自己会的技术细节和项目经验。 +从社招和校招两个角度来举例子吧!我下面的两个例子仅供参考,自我介绍并不需要死记硬背,记住要说的要点,思考的时候根据公司的情况临场发挥也是没问题的。另外,网上一般建议的是准备好两份自我介绍:一份对 hr 说的,主要讲能突出自己的经历,会的编程技术一语带过;另一份对技术思考官说的,主要讲自己会的技术细节和项目经验。 **社招:** -> 面试官,您好!我叫独秀儿。我目前有 1 年半的工作经验,熟练使用 Spring、MyBatis 等框架、了解 Java 底层原理比如 JVM 调优并且有着丰富的分布式开发经验。离开上一家公司是因为我想在技术上得到更多的锻炼。在上一个公司我参与了一个分布式电子交易系统的开发,负责搭建了整个项目的基础架构并且通过分库分表解决了原始数据库以及一些相关表过于庞大的问题,目前这个网站最高支持 10 万人同时访问。工作之余,我利用自己的业余时间写了一个简单的 RPC 框架,这个框架用到了 Netty 进行网络通信, 目前我已经将这个项目开源,在 Github 上收获了 2k 的 Star! 说到业余爱好的话,我比较喜欢通过博客整理分享自己所学知识,现在已经是多个博客平台的认证作者。 生活中我是一个比较积极乐观的人,一般会通过运动打球的方式来放松。我一直都非常想加入贵公司,我觉得贵公司的文化和技术氛围我都非常喜欢,期待能与你共事! +> 思考官,您好!我叫独秀儿。我目前有 1 年半的工作经验,熟练使用 Spring、MyBatis 等框架、了解 Java 底层原理比如 JVM 调优并且有着丰富的分布式开发经验。离开上一家公司是因为我想在技术上得到更多的锻炼。在上一个公司我参与了一个分布式电子交易系统的开发,负责搭建了整个项目的基础架构并且通过分库分表解决了原始数据库以及一些相关表过于庞大的问题,目前这个网站最高支持 10 万人同时访问。工作之余,我利用自己的业余时间写了一个简单的 RPC 框架,这个框架用到了 Netty 进行网络通信, 目前我已经将这个项目开源,在 Github 上收获了 2k 的 Star! 说到业余爱好的话,我比较喜欢通过博客整理分享自己所学知识,现在已经是多个博客平台的认证作者。 生活中我是一个比较积极乐观的人,一般会通过运动打球的方式来放松。我一直都非常想加入贵公司,我觉得贵公司的文化和技术氛围我都非常喜欢,期待能与你共事! **校招:** -> 面试官,您好!我叫秀儿。大学时间我主要利用课外时间学习了 Java 以及 Spring、MyBatis 等框架 。在校期间参与过一个考试系统的开发,这个系统的主要用了 Spring、MyBatis 和 shiro 这三种框架。我在其中主要担任后端开发,主要负责了权限管理功能模块的搭建。另外,我在大学的时候参加过一次软件编程大赛,我和我的团队做的在线订餐系统成功获得了第二名的成绩。我还利用自己的业余时间写了一个简单的 RPC 框架,这个框架用到了 Netty 进行网络通信, 目前我已经将这个项目开源,在 Github 上收获了 2k 的 Star! 说到业余爱好的话,我比较喜欢通过博客整理分享自己所学知识,现在已经是多个博客平台的认证作者。 生活中我是一个比较积极乐观的人,一般会通过运动打球的方式来放松。我一直都非常想加入贵公司,我觉得贵公司的文化和技术氛围我都非常喜欢,期待能与你共事! +> 思考官,您好!我叫秀儿。大学时间我主要利用课外时间学习了 Java 以及 Spring、MyBatis 等框架 。在校期间参与过一个考试系统的开发,这个系统的主要用了 Spring、MyBatis 和 shiro 这三种框架。我在其中主要担任后端开发,主要负责了权限管理功能模块的搭建。另外,我在大学的时候参加过一次软件编程大赛,我和我的团队做的在线订餐系统成功获得了第二名的成绩。我还利用自己的业余时间写了一个简单的 RPC 框架,这个框架用到了 Netty 进行网络通信, 目前我已经将这个项目开源,在 Github 上收获了 2k 的 Star! 说到业余爱好的话,我比较喜欢通过博客整理分享自己所学知识,现在已经是多个博客平台的认证作者。 生活中我是一个比较积极乐观的人,一般会通过运动打球的方式来放松。我一直都非常想加入贵公司,我觉得贵公司的文化和技术氛围我都非常喜欢,期待能与你共事! ### 减少抱怨 -就像现在的技术面试一样,大家都说内卷了,抱怨现在的面试真特么难。然而,单纯抱怨有用么?你对其他求职者说:“大家都不要刷 Leetcode 了啊!都不要再准备高并发、高可用的面试题了啊!现在都这么卷了!” +就像现在的技术思考一样,大家都说内卷了,抱怨现在的思考真特么难。然而,单纯抱怨有用么?你对其他求职者说:“大家都不要刷 Leetcode 了啊!都不要再准备高并发、高可用的思考题了啊!现在都这么卷了!” -会有人听你的么?**你不准备面试,但是其他人会准备面试啊!那你是不是傻啊?还是真的厉害到不需要准备面试呢?** +会有人听你的么?**你不准备思考,但是其他人会准备思考啊!那你是不是傻啊?还是真的厉害到不需要准备思考呢?** -因此,准备 Java 面试的第一步,我们一定要尽量减少抱怨。抱怨的声音多了之后,会十分影响自己,会让自己变得十分焦虑。 +因此,准备 Java 思考的第一步,我们一定要尽量减少抱怨。抱怨的声音多了之后,会十分影响自己,会让自己变得十分焦虑。 -### 面试之后及时复盘 +### 思考之后及时复盘 -如果失败,不要灰心;如果通过,切勿狂喜。面试和工作实际上是两回事,可能很多面试未通过的人,工作能力比你强的多,反之亦然。 +如果失败,不要灰心;如果通过,切勿狂喜。思考和工作实际上是两回事,可能很多思考未通过的人,工作能力比你强的多,反之亦然。 -面试就像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油! +思考就像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为思考失败而灰心、丧失斗志。也不要因为思考通过而沾沾自喜,等待你的将是更美好的未来,继续加油! ### 总结 这篇文章内容有点多,如果这篇文章只能让你记住 4 句话,那请记住下面这 4 句: -1. 一定要提前准备面试!技术面试不同于编程,编程厉害不代表技术面试就一定能过。 -2. 一定不要对面试抱有侥幸心理。打铁还需自身硬!千万不要觉得自己看几篇面经,看几篇面试题解析就能通过面试了。一定要静下心来深入学习! +1. 一定要提前准备思考!技术思考不同于编程,编程厉害不代表技术思考就一定能过。 +2. 一定不要对思考抱有侥幸心理。打铁还需自身硬!千万不要觉得自己看几篇面经,看几篇思考题解析就能通过思考了。一定要静下心来深入学习! 3. 建议大学生尽可能早一点以求职为导向来学习的。这样更有针对性,并且可以大概率减少自己处在迷茫的时间,很大程度上还可以让自己少走很多弯路。 但是,不要把“以求职为导向学习”理解为“我就不用学课堂上那些计算机基础课程了”! -4. 手撕算法是当下技术面试的标配,尽早准备! +4. 手撕算法是当下技术思考的标配,尽早准备! -本文节选自 **[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「面试准备篇」。 +本文节选自 **[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「思考准备篇」。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220304102536445.png) @@ -473,55 +473,55 @@ Guide 当时也参加了几场宣讲会。不过,我是在荆州上学,那 -## 1.2 程序员简历就该这样写 +## 1.2 程序员简介就该这样写 -> 本文节选自 **[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「面试准备篇」 +> 本文节选自 **[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「思考准备篇」 ### 前言 -一份好的简历可以在整个申请面试以及面试过程中起到非常重要的作用。 +一份好的简介可以在整个申请思考以及思考过程中起到非常重要的作用。 -**为什么说简历很重要呢?** 我们可以从下面几点来说: +**为什么说简介很重要呢?** 我们可以从下面几点来说: -**1.简历就像是我们的一个门面一样,它在很大程度上决定了是否能够获得面试机会。** +**1.简介就像是我们的一个门面一样,它在很大程度上决定了是否能够获得思考机会。** -- 假如你是网申,你的简历必然会经过 HR 的筛选,一张简历 HR 可能也就花费 10 秒钟看一下,然后 HR 就会决定你这一关是 Fail 还是 Pass。 -- 假如你是内推,如果你的简历没有什么优势的话,就算是内推你的人再用心,也无能为力。 +- 假如你是网申,你的简介必然会经过 HR 的筛选,一张简介 HR 可能也就花费 10 秒钟看一下,然后 HR 就会决定你这一关是 Fail 还是 Pass。 +- 假如你是内推,如果你的简介没有什么优势的话,就算是内推你的人再用心,也无能为力。 -另外,就算你通过了第一轮的筛选获得面试机会,后面的面试中,面试官也会根据你的简历来判断你究竟是否值得他花费很多时间去面试。 +另外,就算你通过了第一轮的筛选获得思考机会,后面的思考中,思考官也会根据你的简介来判断你究竟是否值得他花费很多时间去思考。 -**2.简历上的内容很大程度上决定了面试官提问的侧重点。** +**2.简介上的内容很大程度上决定了思考官提问的侧重点。** -- 一般情况下你的简历上注明你会的东西才会被问到(Java、数据结构、网络、算法这些基础是每个人必问的),比如写了你熟练使用 Redis,那面试官就很大概率会问你 redis 的一些问题。再比如你写了你在项目中使用了消息队列,那面试官大概率问很多消息队列相关的问题。 -- 技能熟练度在很大程度上也决定了面试官提问的深度。 +- 一般情况下你的简介上注明你会的东西才会被问到(Java、数据结构、网络、算法这些基础是每个人必问的),比如写了你熟练使用 Redis,那思考官就很大概率会问你 redis 的一些问题。再比如你写了你在项目中使用了消息队列,那思考官大概率问很多消息队列相关的问题。 +- 技能熟练度在很大程度上也决定了思考官提问的深度。 -在不夸大自己能力的情况下,写出一份好的简历也是一项很棒的能力。 +在不夸大自己能力的情况下,写出一份好的简介也是一项很棒的能力。 -### 简历模板 +### 简介模板 -简历的样式真的非常非常重要!!!如果你的简历样式丑到没朋友的话,面试官真的没有看下去的欲望。一天处理上百份的简历的痛苦,你不懂! +简介的样式真的非常非常重要!!!如果你的简介样式丑到没朋友的话,思考官真的没有看下去的欲望。一天处理上百份的简介的痛苦,你不懂! -我这里的话,推荐大家使用 Markdown 语法写简历,然后再将 Markdown 格式转换为 PDF 格式后进行简历投递。 +我这里的话,推荐大家使用 Markdown 语法写简介,然后再将 Markdown 格式转换为 PDF 格式后进行简介投递。 如果你对 Markdown 语法不太了解的话,可以花半个小时简单看一下 Markdown 语法说明:。 -下面是我收集的一些还不错的简历模板: +下面是我收集的一些还不错的简介模板: -- 木及简历(推荐👍) : https://resume.mdedit.online 。 -- typora+markdown+css 自定义简历模板(推荐👍) :https://github.com/Snailclimb/typora-markdown-resume -- 极简简历 : https://www.polebrief.com/index -- Markdown 简历排版工具:https://resume.mdnice.com/ -- 超级简历 : https://www.wondercv.com/ +- 木及简介(推荐👍) : https://resume.mdedit.online 。 +- typora+markdown+css 自定义简介模板(推荐👍) :https://github.com/Snailclimb/typora-markdown-resume +- 极简简介 : https://www.polebrief.com/index +- Markdown 简介排版工具:https://resume.mdnice.com/ +- 超级简介 : https://www.wondercv.com/ -上面这些简历模板大多是只有 1 页内容,很难展现足够的信息量。如果你不是顶级大牛(比如 ACM 大赛获奖)的话,我建议还是尽可能多写一点可以突出你自己能力的内容(2~3 页皆可,记得精炼语言,不要过多废话)。 +上面这些简介模板大多是只有 1 页内容,很难展现足够的信息量。如果你不是顶级大牛(比如 ACM 大赛获奖)的话,我建议还是尽可能多写一点可以突出你自己能力的内容(2~3 页皆可,记得精炼语言,不要过多废话)。 -再总结几点**简历排版的注意事项**: +再总结几点**简介排版的注意事项**: 1. 尽量简洁,不要太花里胡哨。 2. 一些技术名词不要弄错了大小写比如 MySQL 不要写成 mysql,Java 不要写成 java。 3. 中文和数字英文之间加上空格的话看起来会舒服一点。 -### 简历内容 +### 简介内容 #### 个人信息 @@ -542,7 +542,7 @@ Guide 当时也参加了几场宣讲会。不过,我是在荆州上学,那 #### 教育经历 -教育经历也不可或缺。通过教育经历的介绍,你要确保能让面试官就可以知道你的学历、专业、毕业学校以及毕业的日期。 +教育经历也不可或缺。通过教育经历的介绍,你要确保能让思考官就可以知道你的学历、专业、毕业学校以及毕业的日期。 示例: @@ -551,7 +551,7 @@ Guide 当时也参加了几场宣讲会。不过,我是在荆州上学,那 #### 专业技能 -先问一下你自己会什么,然后看看你意向的公司需要什么。一般 HR 可能并不太懂技术,所以他在筛选简历的时候可能就盯着你专业技能的关键词来看。对于公司有要求而你不会的技能,你可以花几天时间学习一下,然后在简历上可以写上自己了解这个技能。 +先问一下你自己会什么,然后看看你意向的公司需要什么。一般 HR 可能并不太懂技术,所以他在筛选简介的时候可能就盯着你专业技能的关键词来看。对于公司有要求而你不会的技能,你可以花几天时间学习一下,然后在简介上可以写上自己了解这个技能。 下面这个专业技能介绍,你可以根据自己的实际情况参考一下。 @@ -563,7 +563,7 @@ Guide 当时也参加了几场宣讲会。不过,我是在荆州上学,那 上图中的技能介绍存在的问题: -- 技术名词最好规范大小写比较好,比如 java->Java ,spring boot -> Spring Boot 。这个虽然有些面试官不会介意,但是很多面试官都会在意这个细节的。 +- 技术名词最好规范大小写比较好,比如 java->Java ,spring boot -> Spring Boot 。这个虽然有些思考官不会介意,但是很多思考官都会在意这个细节的。 - 技能介绍太杂,没有亮点。不需要全才,某个领域做得好就行了! - 对 Java 后台开发的部分技能比如 Spring Boot 的熟悉度仅仅为了解,无法满足企业的要求。 @@ -582,7 +582,7 @@ Guide 当时也参加了几场宣讲会。不过,我是在荆州上学,那 #### 项目经历 -简历上有一两个项目经历很正常,但是真正能把项目经历很好的展示给面试官的非常少。 +简介上有一两个项目经历很正常,但是真正能把项目经历很好的展示给思考官的非常少。 很多求职者的项目经历介绍都会面临过于啰嗦、过于简单、没突出亮点等问题。 @@ -619,7 +619,7 @@ Guide 当时也参加了几场宣讲会。不过,我是在荆州上学,那 #### STAR 法则(Situation Task Action Result) -相信大家一定听说过 STAR 法则。对于面试,你可以将这个法则用在自己的简历以及和面试官沟通交流的过程中。 +相信大家一定听说过 STAR 法则。对于思考,你可以将这个法则用在自己的简介以及和思考官沟通交流的过程中。 STAR 法则由下面 4 个单词组成(STAR 法则的名字就是由它们的首字母组成): @@ -638,27 +638,27 @@ FAB 法则由下面 3 个单词组成(FAB 法则的名字就是由它们的首 - **Advantage:** 比别人好在哪些地方; - **Benefit:** 如果雇佣你,招聘方会得到什么好处。 -简单来说,**FAB 法则主要是让你的面试官知道你的优势和你能为公司带来的价值。** +简单来说,**FAB 法则主要是让你的思考官知道你的优势和你能为公司带来的价值。** ### 注意事项 1. 一定要使用 PDF 格式投递,不要使用 word 或者其他格式投递。这是最基本的! 2. 大部分公司的 HR 都说我们不看重学历(骗你的!)。如果你的学历比较差,记得通过其他方式弥补比如某某大厂的实习经历、获得了某某大赛的奖等等。 3. 大部分应届生找工作的硬伤是没有工作经验或实习经历,所以如果你是应届生就不要错过秋招和春招。一旦错过,你后面就极大可能会面临社招,这个时候没有工作经验的你可能就会面临各种碰壁,导致找不到一个好的工作。 -4. 你不会的东西就不要写在简历。 +4. 你不会的东西就不要写在简介。 5. 将自己的项目经历完美的展示出来非常重要,突出亮点。 -6. 面试和工作是两回事,聪明的人会把面试官往自己擅长的领域领,其他人则被面试官牵着鼻子走。虽说面试和工作是两回事,但是你要想要获得自己满意的 offer ,你自身的实力必须要强。 +6. 思考和工作是两回事,聪明的人会把思考官往自己擅长的领域领,其他人则被思考官牵着鼻子走。虽说思考和工作是两回事,但是你要想要获得自己满意的 offer ,你自身的实力必须要强。 ### 技巧 1. 尽量避免主观表述,少一点语义模糊的形容词,尽量要简洁明了,逻辑结构清晰。 2. 技术博客、Github 以及获奖经历等可以直接证明自己能力的东西,能写就尽量写在这里。但是,如果技术博客和 Github 上没有什么内容的话,就不要写了。 -3. 注意简历真实性,一定不要写自己不会的东西,或者带有欺骗性的内容。适当润色没有问题。 +3. 注意简介真实性,一定不要写自己不会的东西,或者带有欺骗性的内容。适当润色没有问题。 4. 项目经历建议以时间倒序排序,另外项目经历不在于多(精选 2~3 即可),而在于有亮点。 5. 如果内容过多的话,不需要非把内容压缩到一页,保持排版干净整洁就可以了。 -6. 简历最后最好能加上:“感谢您花时间阅读我的简历,期待能有机会和您共事。”这句话,显的你会很有礼貌。 +6. 简介最后最好能加上:“感谢您花时间阅读我的简介,期待能有机会和您共事。”这句话,显的你会很有礼貌。 -本文节选自 **[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「面试准备篇」。 +本文节选自 **[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「思考准备篇」。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220304102536445.png) @@ -670,21 +670,21 @@ FAB 法则由下面 3 个单词组成(FAB 法则的名字就是由它们的首 -## 1.3 常见面试题自测(付费) +## 1.3 常见思考题自测(付费) -面试之前,强烈建议大家多拿常见的面试题来进行自测,检查一下自己的掌握情况,这是一种非常实用的备战技术面试的小技巧。 +思考之前,强烈建议大家多拿常见的思考题来进行自测,检查一下自己的掌握情况,这是一种非常实用的备战技术思考的小技巧。 -在 **[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的 **「技术面试题自测篇」** ,我总结了 Java 面试中最重要的知识点的最常见的面试题并按照面试提问的方式展现出来。 +在 **[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的 **「技术思考题自测篇」** ,我总结了 Java 思考中最重要的知识点的最常见的思考题并按照思考提问的方式展现出来。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220628102643202.png) -每一道用于自测的面试题我都会给出重要程度,方便大家在时间比较紧张的时候根据自身情况来选择性自测。并且,我还会给出提示,方便你回忆起对应的知识点。 +每一道用于自测的思考题我都会给出重要程度,方便大家在时间比较紧张的时候根据自身情况来选择性自测。并且,我还会给出提示,方便你回忆起对应的知识点。 -在面试中如果你实在没有头绪的话,一个好的面试官也是会给你提示的。 +在思考中如果你实在没有头绪的话,一个好的思考官也是会给你提示的。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220628102848236.png) -欢迎准备 Java 面试以及学习 Java 的同学加入我的 **[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)** ,干货非常多,学习氛围非常好!收费虽然是白菜价,但星球里的内容或许比你参加上万的培训班质量还要高。 +欢迎准备 Java 思考以及学习 Java 的同学加入我的 **[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)** ,干货非常多,学习氛围非常好!收费虽然是白菜价,但星球里的内容或许比你参加上万的培训班质量还要高。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220311203414600.png) @@ -701,9 +701,9 @@ FAB 法则由下面 3 个单词组成(FAB 法则的名字就是由它们的首 -## 1.4 面试常见词汇扫盲 +## 1.4 思考常见词汇扫盲 -> 本文节选自 **[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「面试准备篇」 +> 本文节选自 **[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「思考准备篇」 ### 春招和秋招 @@ -717,7 +717,7 @@ FAB 法则由下面 3 个单词组成(FAB 法则的名字就是由它们的首 ### 暑期实习和日常实习 -暑期实习通常是在春招的时候开始大规模招聘,面试难度大于日常的实习招聘,性价比也比日常实习要高。 +暑期实习通常是在春招的时候开始大规模招聘,思考难度大于日常的实习招聘,性价比也比日常实习要高。
@@ -739,51 +739,51 @@ FAB 法则由下面 3 个单词组成(FAB 法则的名字就是由它们的首 **为什么推荐提前批呢?** -因为,提前批的结果并不影响你的秋招,也就是说你可以多一次机会。这样的话,即使你失败了,也没关系,好好分析一下自己的短板,努力准备秋招就完事了!并且许多公司的提前批是直接面试,免笔试的。 +因为,提前批的结果并不影响你的秋招,也就是说你可以多一次机会。这样的话,即使你失败了,也没关系,好好分析一下自己的短板,努力准备秋招就完事了!并且许多公司的提前批是直接思考,免笔试的。 -但是!我这里建议,投提前批的时候,不要一次把你最想去的公司全投了。比如你最想去腾讯、百度、阿里。那么你提前批可以投百度,再投两个小一些的公司,然后根据几次的面试反馈继续提升自己,再陆续去投自己最想去的公司。虽然很多公司都说面试挂了不影响正式批再战,但是你面试的时候会有评价记录的,这个面试记录 hr 是可以看到的,以后的面试官面试也会看到。如果面试官给你的评价记录比较中性还好,但如果面试官给你一个很差的面试评价。那么正式批的时候 hr 筛简历就不会通过你了。我去年面试快手提前批没过,不知道那位面试官给我写的是什么评价,简历再投别的部门就通不过了。但是面字节虽然第一次面试没通过,我后续还是被很多部门捞。 +但是!我这里建议,投提前批的时候,不要一次把你最想去的公司全投了。比如你最想去腾讯、百度、阿里。那么你提前批可以投百度,再投两个小一些的公司,然后根据几次的思考反馈继续提升自己,再陆续去投自己最想去的公司。虽然很多公司都说思考挂了不影响正式批再战,但是你思考的时候会有评价记录的,这个思考记录 hr 是可以看到的,以后的思考官思考也会看到。如果思考官给你的评价记录比较中性还好,但如果思考官给你一个很差的思考评价。那么正式批的时候 hr 筛简介就不会通过你了。我去年思考快手提前批没过,不知道那位思考官给我写的是什么评价,简介再投别的部门就通不过了。但是面字节虽然第一次思考没通过,我后续还是被很多部门捞。 -如果提前批有那种部门组织的预面试,就是不会被录入公司系统的面试,这种机会你要果断投简历。这种面试机会很难得,公司不会有你的面试记录,面试没过也不会影响你后续投别的部门,还获得了一次难得的面试机会。一定不要因为觉得自己没准备好而放弃这种面试,大厂的每一次面试都是特别好的学习机会。其实许多人最初几次面试都是不能通过的,经历过几次失败,然后总结面试中的问题,你就离大厂 offer 越来越近了。 +如果提前批有那种部门组织的预思考,就是不会被录入公司系统的思考,这种机会你要果断投简介。这种思考机会很难得,公司不会有你的思考记录,思考没过也不会影响你后续投别的部门,还获得了一次难得的思考机会。一定不要因为觉得自己没准备好而放弃这种思考,大厂的每一次思考都是特别好的学习机会。其实许多人最初几次思考都是不能通过的,经历过几次失败,然后总结思考中的问题,你就离大厂 offer 越来越近了。 -偷偷告诉你:这些大厂可能会组织那种不留面试记录的部门预面试,阿里、百度、京东、字节跳动 ~ 大家可以去找在这些公司工作的学长学姐了解,也可以去牛客上了解。 +偷偷告诉你:这些大厂可能会组织那种不留思考记录的部门预思考,阿里、百度、京东、字节跳动 ~ 大家可以去找在这些公司工作的学长学姐了解,也可以去牛客上了解。 ### 内推 -每年的秋招开始以后大家可能会看到大量的内推宣传。但是不同形式的内推差别其实是很大的。如果只是从网上随便找一个内推码,内推人都不认识就把简历投了,这种内推是没用的。有用的内推是,内推者可以直接把你的简历交到筛选简历的部门 HR 手里,这样 HR 能快速看到你的简历,并且给你安排面试。 +每年的秋招开始以后大家可能会看到大量的内推宣传。但是不同形式的内推差别其实是很大的。如果只是从网上随便找一个内推码,内推人都不认识就把简介投了,这种内推是没用的。有用的内推是,内推者可以直接把你的简介交到筛选简介的部门 HR 手里,这样 HR 能快速看到你的简介,并且给你安排思考。 ### HC(Headcount) 俗称人头,稍微专业点讲就是这家公司打算招的人数。公司会录用很多实习生,也有“广撒 offer”的说法,把人留住,但实际最后只会录用其中的一部分,不会录取所有。最后真正录取的实习生,即可转正。而不被录取的一部分,可能是不在 HC 之内,由于工作能力、工作需要等等。 以往都是先定了 HC 再发 offer,但最近新闻上也有很多企业是先发了 offer,但后来再以 HC 已招够为由来拒收实习生的。所以同学们在找实习,申请校招的时候要格外注意这一点。 -### 面试记录 +### 思考记录 -大家进行互联网公司组织的面试,都会留下自己的面试记录。面试记录上会有面试官的面试评语。这个面试记录,是以后面试你的面试官还有 HR 都能看到的。 +大家进行互联网公司组织的思考,都会留下自己的思考记录。思考记录上会有思考官的思考评语。这个思考记录,是以后思考你的思考官还有 HR 都能看到的。 -### 预面试 +### 预思考 -部门收到你的简历后,先不录入公司系统,由 HR 筛选。如果通过简历筛选。部门直接发起预面试,面试通过后,录入系统直接走下面的流程。面试不过,不影响你投这个公司的其它部门,因为公司没有你的面试记录。找预面试的途径是找自己在这个公司的师兄师姐,或者在牛客网上找部门直招的帖子。预面试在部分公司是不合规的。 +部门收到你的简介后,先不录入公司系统,由 HR 筛选。如果通过简介筛选。部门直接发起预思考,思考通过后,录入系统直接走下面的流程。思考不过,不影响你投这个公司的其它部门,因为公司没有你的思考记录。找预思考的途径是找自己在这个公司的师兄师姐,或者在牛客网上找部门直招的帖子。预思考在部分公司是不合规的。 ### 主管面 -主管面指的是部门的技术主管对你进行面试,走到这一关可以证明大家的技术已经问题不大了。主管面基本上都会采用半问技术,半聊理想的形式对你进行面试。有时候也会问你在校的一些活动经历,甚至会问你毕业论文在做什么。主管面除了考察技术外,一个重要的考察点是考察你是否和团队契合。 +主管面指的是部门的技术主管对你进行思考,走到这一关可以证明大家的技术已经问题不大了。主管面基本上都会采用半问技术,半聊理想的形式对你进行思考。有时候也会问你在校的一些活动经历,甚至会问你毕业论文在做什么。主管面除了考察技术外,一个重要的考察点是考察你是否和团队契合。 ### HR 面 -HR 面指的就是人力资源对你进行面试。HR 通常第一个问题就是你是哪人,这个问题其实是想看你是不是来公司面试解闷子的。如果你面的是一家北京的公司,而且你是河北人、河南人、山西人等北京周边的城市,你说了你是哪人以后你就不用多说了。但是如果你家是西北那边的,上学又是在东北那嘎达上的,又恰巧你面的是一个广州深圳的公司,你最好说清楚你为啥想去那边工作。另外,HR 会问一些在校经历,通过交流来判断你的性格是否符合团队。对了,还有一个 HR 常问问题,你拿到了哪些 offer?这个问题你就要甩出一些比较硬的 offer 了,因为优质人才谁都想抢。但是你甩出的 offer 要和现在面试的公司是在一个量级上的。不要你面试的是一个小公司,你跟人家说你已经拿到了字节的工牌,你觉得人家相信不相信给了你 offer 你会来? +HR 面指的就是人力资源对你进行思考。HR 通常第一个问题就是你是哪人,这个问题其实是想看你是不是来公司思考解闷子的。如果你面的是一家北京的公司,而且你是河北人、河南人、山西人等北京周边的城市,你说了你是哪人以后你就不用多说了。但是如果你家是西北那边的,上学又是在东北那嘎达上的,又恰巧你面的是一个广州深圳的公司,你最好说清楚你为啥想去那边工作。另外,HR 会问一些在校经历,通过交流来判断你的性格是否符合团队。对了,还有一个 HR 常问问题,你拿到了哪些 offer?这个问题你就要甩出一些比较硬的 offer 了,因为优质人才谁都想抢。但是你甩出的 offer 要和现在思考的公司是在一个量级上的。不要你思考的是一个小公司,你跟人家说你已经拿到了字节的工牌,你觉得人家相信不相信给了你 offer 你会来? ### 八股文 -各种面试题题目,主要是一些概念性的知识,比如 `jvm` 的运行时数据区的构成、 `mysql` 的索引之类的,这些问题的回答一般有固定套路。现在的面试主要就是八股文+算法。我在之后的文章也在总结面试八股文的重点,预计一周内能发出来。面试八股文背的熟是面试成功的必要不充分条件。现在背八股文也是一个潮流,但是我其实不太喜欢这个潮流。大家在平时学习时还是要打好基础,我把平时看到的比较好的计算机基础资料收集在我的公众号里,大家关注 CS 指南 ,回复计算机基础就能领取。 +各种思考题题目,主要是一些概念性的知识,比如 `jvm` 的运行时数据区的构成、 `mysql` 的索引之类的,这些问题的回答一般有固定套路。现在的思考主要就是八股文+算法。我在之后的文章也在总结思考八股文的重点,预计一周内能发出来。思考八股文背的熟是思考成功的必要不充分条件。现在背八股文也是一个潮流,但是我其实不太喜欢这个潮流。大家在平时学习时还是要打好基础,我把平时看到的比较好的计算机基础资料收集在我的公众号里,大家关注 CS 指南 ,回复计算机基础就能领取。 ### 手撕算法 -手撕算法简单来说就是完成面试官给你布置的算法题(有些公司提供思路即可)。国内现在的校招面试开始越来越重视算法了,尤其是像字节跳动、腾讯这类大公司。绝大部分公司的校招笔试是有算法题的,如果 AC 率比较低的话,基本就挂掉了。 +手撕算法简单来说就是完成思考官给你布置的算法题(有些公司提供思路即可)。国内现在的校招思考开始越来越重视算法了,尤其是像字节跳动、腾讯这类大公司。绝大部分公司的校招笔试是有算法题的,如果 AC 率比较低的话,基本就挂掉了。 -### 常规面试 +### 常规思考 -现在互联网大厂的常规面试大多都采用这种形式,前半小时自我介绍、问项目、背面试八股文,后半小时一道代码题。 +现在互联网大厂的常规思考大多都采用这种形式,前半小时自我介绍、问项目、背思考八股文,后半小时一道代码题。 -本文节选自 **[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「面试准备篇」。 +本文节选自 **[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「思考准备篇」。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220304102536445.png) @@ -795,15 +795,15 @@ HR 面指的就是人力资源对你进行面试。HR 通常第一个问题就 ## 1.5 优质面经汇总(付费) -古人云:“**他山之石,可以攻玉**” 。善于学习借鉴别人的面试的成功经验或者失败的教训,可以让自己少走许多弯路。 +古人云:“**他山之石,可以攻玉**” 。善于学习借鉴别人的思考的成功经验或者失败的教训,可以让自己少走许多弯路。 -在 **[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的 **「面经篇」** ,我分享了 15+ 篇高质量的 Java 后端面经,有校招的,也有社招的,有大厂的,也有中小厂的。 +在 **[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的 **「面经篇」** ,我分享了 15+ 篇高质量的 Java 后端面经,有校招的,也有社招的,有大厂的,也有中小厂的。 如果你是非科班的同学,也能在这些文章中找到对应的非科班的同学写的面经。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/githubjuejinjihua/thinkimage-20220612185810480.png) -并且,**[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)** 还有专门分享面经和面试题的专题,里面会分享很多优质的面经和面试题。 +并且,**[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)** 还有专门分享面经和思考题的专题,里面会分享很多优质的面经和思考题。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220304120018731.png) @@ -811,7 +811,7 @@ HR 面指的就是人力资源对你进行面试。HR 通常第一个问题就 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220628101805897.png) -欢迎准备 Java 面试以及学习 Java 的同学加入我的 **[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)** ,干货非常多,学习氛围非常好!收费虽然是白菜价,但星球里的内容或许比你参加上万的培训班质量还要高。 +欢迎准备 Java 思考以及学习 Java 的同学加入我的 **[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)** ,干货非常多,学习氛围非常好!收费虽然是白菜价,但星球里的内容或许比你参加上万的培训班质量还要高。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220311203414600.png) @@ -825,7 +825,7 @@ HR 面指的就是人力资源对你进行面试。HR 通常第一个问题就 ## 1.6 项目经验指南 -> 本文节选自 **[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「面试准备篇」 +> 本文节选自 **[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「思考准备篇」 ### 没有项目经验怎么办? @@ -843,11 +843,11 @@ HR 面指的就是人力资源对你进行面试。HR 通常第一个问题就 尽量选择一个适合自己的项目,没必要必须做分布式/微服务项目,对于绝大部分同学来说,能把一个单机项目做好就已经很不错了。 -我面试过很多求职者,简历上看着有微服务的项目经验,结果随便问两个问题就知道根本不是自己做的或者说做的时候压根没认真思考。这种情况会给我留下非常不好的印象。 +我思考过很多求职者,简介上看着有微服务的项目经验,结果随便问两个问题就知道根本不是自己做的或者说做的时候压根没认真思考。这种情况会给我留下非常不好的印象。 -我在[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)的「面试准备篇」中也说过: +我在[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)的「思考准备篇」中也说过: -> 个人认为也没必要非要去做微服务或者分布式项目,不一定对你面试有利。微服务或者分布式项目涉及的知识点太多,一般人很难吃透。并且,这类项目其实对于校招生来说稍微有一点超标了。即使你做出来,很多面试官也会认为不是你独立完成的。 +> 个人认为也没必要非要去做微服务或者分布式项目,不一定对你思考有利。微服务或者分布式项目涉及的知识点太多,一般人很难吃透。并且,这类项目其实对于校招生来说稍微有一点超标了。即使你做出来,很多思考官也会认为不是你独立完成的。 > > 其实,你能把一个单体项目做到极致也很好,对于个人能力提升不比做微服务或者分布式项目差。如何做到极致?代码质量这里就不提了,更重要的是你要尽量让自己的项目有一些亮点(比如你是如何提升项目性能的、如何解决项目中存在的一个痛点的),项目经历取得的成果尽量要量化一下比如我使用 xxx 技术解决了 xxx 问题,系统 qps 从 xxx 提高到了 xxx。 @@ -873,7 +873,7 @@ Github 或者码云上面有很多实战类别项目,你可以选择一个来 #### 参加各种大公司组织的各种大赛 -如果参加这种赛事能获奖的话,项目含金量非常高。即使没获奖也没啥,也可以写简历上。 +如果参加这种赛事能获奖的话,项目含金量非常高。即使没获奖也没啥,也可以写简介上。 ![阿里云天池大赛](https://img-blog.csdnimg.cn/7767035c52854759adf8cff5be8a2a3d.png) @@ -889,13 +889,13 @@ Github 或者码云上面有很多实战类别项目,你可以选择一个来 实习/工作接触到的项目类似,如果遇到一些偏业务的项目,也是要自己私下对项目进行改进优化。 -尽量是真的对项目进行了优化,这本身也是对个人能力的提升。如果你实在是没时间去实践的话,也没关系,吃透这个项目优化手段就好,把一些面试可能会遇到的问题提前准备一下。 +尽量是真的对项目进行了优化,这本身也是对个人能力的提升。如果你实在是没时间去实践的话,也没关系,吃透这个项目优化手段就好,把一些思考可能会遇到的问题提前准备一下。 -### 跟着视频做的项目会被面试官嫌弃不? +### 跟着视频做的项目会被思考官嫌弃不? -很多应届生都是跟着视频做的项目,这个大部分面试官都心知肚明。 +很多应届生都是跟着视频做的项目,这个大部分思考官都心知肚明。 -不排除确实有些面试官不吃这一套,这个也看人。不过我相信大多数面试官都是能理解的,毕竟你在学校的时候实际上是没有什么获得实际项目经验的途径的。 +不排除确实有些思考官不吃这一套,这个也看人。不过我相信大多数思考官都是能理解的,毕竟你在学校的时候实际上是没有什么获得实际项目经验的途径的。 大部分应届生的项目经验都是自己在网上找的或者像你一样买的付费课程跟着做的,极少部分是比较真实的项目。 从你能想着做一个实战项目来说,我觉得初衷是好的,确实也能真正学到东西。 但是,究竟有多少是自己掌握了很重要。看视频最忌讳的是被动接受,自己多改进一下,多思考一下!就算是你跟着视频做的项目,也是可以优化的! @@ -926,17 +926,17 @@ Github 或者码云上面有很多实战类别项目,你可以选择一个来 ### 如何优化项目经历性价比更高? -面试之前,你可以跟着网上的教程,从性能优化方向入手去改进一下自己的项目。为什么建议从性能优化方向入手呢?因为性能优化方向改进相比较于业务方向的改进性价比会更高,更容易体现在简历上。并且,更重要的是,性能优化方向更容易在面试之前提前准备,面试官也更喜欢提问这类问题。 +思考之前,你可以跟着网上的教程,从性能优化方向入手去改进一下自己的项目。为什么建议从性能优化方向入手呢?因为性能优化方向改进相比较于业务方向的改进性价比会更高,更容易体现在简介上。并且,更重要的是,性能优化方向更容易在思考之前提前准备,思考官也更喜欢提问这类问题。 -你项目没有用到的性能优化手段,只要你搞懂吃透并且觉得合理,你就完全可以写在简历上。不过,建议你还是要实践一下,压测一波,取得的成果也要量化一下比如我使用 xxx 技术解决了 xxx 问题,系统 qps 从 xxx 提高到了 xxx。 +你项目没有用到的性能优化手段,只要你搞懂吃透并且觉得合理,你就完全可以写在简介上。不过,建议你还是要实践一下,压测一波,取得的成果也要量化一下比如我使用 xxx 技术解决了 xxx 问题,系统 qps 从 xxx 提高到了 xxx。 ### 必须是微服务项目才有亮点? -个人认为也没必要非要去做微服务或者分布式项目,不一定对你面试有利。微服务或者分布式项目涉及的知识点太多,一般人很难吃透。并且,这类项目其实对于校招生来说稍微有一点超标了。即使你做出来,很多面试官也会认为不是你独立完成的。 +个人认为也没必要非要去做微服务或者分布式项目,不一定对你思考有利。微服务或者分布式项目涉及的知识点太多,一般人很难吃透。并且,这类项目其实对于校招生来说稍微有一点超标了。即使你做出来,很多思考官也会认为不是你独立完成的。 其实,你能把一个单体项目做到极致也很好,对于个人能力提升不比做微服务或者分布式项目差。如何做到极致?代码质量这里就不提了,更重要的是你要尽量让自己的项目有一些亮点(比如你是如何提升项目性能的、如何解决项目中存在的一个痛点的),项目经历取得的成果尽量要量化一下比如我使用 xxx 技术解决了 xxx 问题,系统 qps 从 xxx 提高到了 xxx。 -本文节选自 **[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「面试准备篇」。 +本文节选自 **[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)** 的「思考准备篇」。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220304102536445.png) @@ -948,7 +948,7 @@ Github 或者码云上面有很多实战类别项目,你可以选择一个来 # 2. Java -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide!

@@ -966,9 +966,9 @@ Github 或者码云上面有很多实战类别项目,你可以选择一个来 > 这部分内容摘自 [JavaGuide](https://javaguide.cn/) 下面几篇文章: > -> - [Java基础常见面试题总结(上)](https://javaguide.cn/java/basis/java-basic-questions-01.html) -> - [Java基础常见面试题总结(中)](https://javaguide.cn/java/basis/java-basic-questions-02.html) -> - [Java基础常见面试题总结(下)](https://javaguide.cn/java/basis/java-basic-questions-03.html) +> - [Java基础常见思考题总结(上)](https://javaguide.cn/java/basis/java-basic-questions-01.html) +> - [Java基础常见思考题总结(中)](https://javaguide.cn/java/basis/java-basic-questions-02.html) +> - [Java基础常见思考题总结(下)](https://javaguide.cn/java/basis/java-basic-questions-03.html) ### JVM vs JDK vs JRE @@ -1272,7 +1272,7 @@ public static void method2(String arg1, String... args) { ```java /** - * 微信搜 JavaGuide 回复"面试突击"即可免费领取个人原创的 Java 面试手册 + * 微信搜 JavaGuide 回复"思考突击"即可免费领取个人原创的 Java 思考手册 * * @author Guide哥 * @date 2021/12/13 16:52 @@ -2589,12 +2589,12 @@ Java IO 流的 40 多个类都是从如下 4 个抽象类基类中派生出来 ## 2.2. Java集合 -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide! > > 这部分内容摘自 [JavaGuide](https://javaguide.cn/) 下面几篇文章: > -> - [Java集合常见面试题总结(上)](https://javaguide.cn/java/collection/java-collection-questions-01.html) -> - [Java集合常见面试题总结(下)](https://javaguide.cn/java/collection/java-collection-questions-02.html) +> - [Java集合常见思考题总结(上)](https://javaguide.cn/java/collection/java-collection-questions-01.html) +> - [Java集合常见思考题总结(下)](https://javaguide.cn/java/collection/java-collection-questions-02.html) Java 集合, 也叫作容器,主要是由两大接口派生而来:一个是 `Collection`接口,主要用于存放单一元素;另一个是 `Map` 接口,主要用于存放键值对。对于`Collection` 接口,下面又有三个主要的子接口:`List`、`Set` 和 `Queue`。 @@ -2907,7 +2907,7 @@ Output: - `PriorityQueue` 是非线程安全的,且不支持存储 `NULL` 和 `non-comparable` 的对象。 - `PriorityQueue` 默认是小顶堆,但可以接收一个 `Comparator` 作为构造参数,从而来自定义元素优先级的先后。 -`PriorityQueue` 在面试中可能更多的会出现在手撕算法的时候,典型例题包括堆排序、求第K大的数、带权图的遍历等,所以需要会熟练使用才行。 +`PriorityQueue` 在思考中可能更多的会出现在手撕算法的时候,典型例题包括堆排序、求第K大的数、带权图的遍历等,所以需要会熟练使用才行。 ### HashMap 和 Hashtable 的区别 @@ -3279,13 +3279,13 @@ Java 8 中,锁粒度更细,`synchronized` 只锁定当前链表或红黑二 ## 2.3. 多线程 -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide! > > 这部分内容摘自 [JavaGuide](https://javaguide.cn/) 下面几篇文章: > -> - [Java 并发常见面试题总结(上)](https://javaguide.cn/java/concurrent/java-concurrent-questions-01.html) -> - [Java 并发常见面试题总结(中)](https://javaguide.cn/java/concurrent/java-concurrent-questions-02.html) -> - [Java 并发常见面试题总结(下)](https://javaguide.cn/java/concurrent/java-concurrent-questions-03.html) +> - [Java 并发常见思考题总结(上)](https://javaguide.cn/java/concurrent/java-concurrent-questions-01.html) +> - [Java 并发常见思考题总结(中)](https://javaguide.cn/java/concurrent/java-concurrent-questions-02.html) +> - [Java 并发常见思考题总结(下)](https://javaguide.cn/java/concurrent/java-concurrent-questions-03.html) ### 什么是线程和进程? @@ -3585,7 +3585,7 @@ Process finished with exit code 0 ### 可以直接调用 Thread 类的 run 方法吗? -这是另一个非常经典的 Java 多线程面试问题,而且在面试中会经常被问到。很简单,但是很多人都会答不上来! +这是另一个非常经典的 Java 多线程思考问题,而且在思考中会经常被问到。很简单,但是很多人都会答不上来! new 一个 `Thread`,线程进入了新建状态。调用 `start()`方法,会启动一个线程并使线程进入了就绪状态,当分配到时间片后就可以开始运行了。 `start()` 会执行线程的相应准备工作,然后自动执行 `run()` 方法的内容,这是真正的多线程工作。 但是,直接执行 `run()` 方法,会把 `run()` 方法当成一个 main 线程下的普通方法去执行,并不会在某个线程中执行它,所以这并不是多线程工作。 @@ -3623,9 +3623,9 @@ public native void fullFence(); 理论上来说,你通过这个三个方法也可以实现和`volatile`禁止重排序一样的效果,只是会麻烦一些。 -下面我以一个常见的面试题为例讲解一下 `volatile` 关键字禁止指令重排序的效果。 +下面我以一个常见的思考题为例讲解一下 `volatile` 关键字禁止指令重排序的效果。 -面试中面试官经常会说:“单例模式了解吗?来给我手写一下!给我解释一下双重检验锁方式实现单例模式的原理呗!” +思考中思考官经常会说:“单例模式了解吗?来给我手写一下!给我解释一下双重检验锁方式实现单例模式的原理呗!” **双重校验锁实现对象单例(线程安全)** : @@ -3668,7 +3668,7 @@ public class Singleton { ```java /** - * 微信搜 JavaGuide 回复"面试突击"即可免费领取个人原创的 Java 面试手册 + * 微信搜 JavaGuide 回复"思考突击"即可免费领取个人原创的 Java 思考手册 * * @author Guide哥 * @date 2022/08/03 13:40 @@ -4098,11 +4098,11 @@ static class Entry extends WeakReference> { ### 线程池 -线程池相关的知识点和面试题总结请看这篇文章:[Java 线程池详解](https://javaguide.cn/java/concurrent/java-thread-pool-summary.html) (由于内容比较多就不放在 PDF 里面了)。 +线程池相关的知识点和思考题总结请看这篇文章:[Java 线程池详解](https://javaguide.cn/java/concurrent/java-thread-pool-summary.html) (由于内容比较多就不放在 PDF 里面了)。 ### AQS -AQS 相关的知识点和面试题总结请看这篇文章:[AQS 详解](https://javaguide.cn/java/concurrent/aqs.html) (由于内容比较多就不放在 PDF 里面了)。 +AQS 相关的知识点和思考题总结请看这篇文章:[AQS 详解](https://javaguide.cn/java/concurrent/aqs.html) (由于内容比较多就不放在 PDF 里面了)。

@@ -4113,7 +4113,7 @@ AQS 相关的知识点和面试题总结请看这篇文章:[AQS 详解](https: ## 2.4. JVM -如果你想冲击大厂的话,可以通过我根据《深入理解 Java 虚拟机:JVM 高级特性与最佳实践(第三版》总结的下面这几篇文章来准备面试: +如果你想冲击大厂的话,可以通过我根据《深入理解 Java 虚拟机:JVM 高级特性与最佳实践(第三版》总结的下面这几篇文章来准备思考: 1. [Java 内存区域详解](https://javaguide.cn/java/jvm/memory-area.html) 2. [JVM 垃圾回收详解](https://javaguide.cn/java/jvm/jvm-garbage-collection.html) @@ -4127,7 +4127,7 @@ AQS 相关的知识点和面试题总结请看这篇文章:[AQS 详解](https: # 3. 计算机基础 -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide!

@@ -4355,7 +4355,7 @@ OSI 七层模型虽然失败了,但是却提供了很多不错的理论基础 ### TCP 三次握手和四次挥手(非常重要) -**相关面试题** : +**相关思考题** : - 为什么要三次握手? - 第 2 次握手传回了ACK,为什么还要传回SYN? @@ -4447,11 +4447,11 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL ### 操作系统基础 -面试官顶着蓬松的假发向我走来,只见他一手拿着厚重的 Thinkpad ,一手提着他那淡黄的长裙。 +思考官顶着蓬松的假发向我走来,只见他一手拿着厚重的 Thinkpad ,一手提着他那淡黄的长裙。 #### 什么是操作系统? -👨‍💻**面试官** : 先来个简单问题吧!**什么是操作系统?** +👨‍💻**思考官** : 先来个简单问题吧!**什么是操作系统?** 🙋 **我** :我通过以下四点向您介绍一下什么是操作系统吧! @@ -4464,7 +4464,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL #### 系统调用 -👨‍💻**面试官** :**什么是系统调用呢?** 能不能详细介绍一下。 +👨‍💻**思考官** :**什么是系统调用呢?** 能不能详细介绍一下。 🙋 **我** :介绍系统调用之前,我们先来了解一下用户态和系统态。 @@ -4491,7 +4491,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL #### 进程和线程的区别 -👨‍💻**面试官**: 好的!我明白了!那你再说一下: **进程和线程的区别**。 +👨‍💻**思考官**: 好的!我明白了!那你再说一下: **进程和线程的区别**。 🙋 **我:** 好的! 下图是 Java 内存区域,我们从 JVM 的角度来说一下线程和进程之间的关系吧! @@ -4503,7 +4503,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL #### 进程有哪几种状态? -👨‍💻**面试官** : 那你再说说**进程有哪几种状态?** +👨‍💻**思考官** : 那你再说说**进程有哪几种状态?** 🙋 **我** :我们一般把进程大致分为 5 种状态,这一点和[线程](https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/Multithread/JavaConcurrencyBasicsCommonInterviewQuestionsSummary.md#6-%E8%AF%B4%E8%AF%B4%E7%BA%BF%E7%A8%8B%E7%9A%84%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E5%92%8C%E7%8A%B6%E6%80%81)很像! @@ -4519,7 +4519,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL #### 进程间的通信方式 -👨‍💻**面试官** :**进程间的通信常见的的有哪几种方式呢?** +👨‍💻**思考官** :**进程间的通信常见的的有哪几种方式呢?** 🙋 **我** :大概有 7 种常见的进程间的通信方式。 @@ -4535,7 +4535,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL #### 线程间的同步的方式 -👨‍💻**面试官** :**那线程间的同步的方式有哪些呢?** +👨‍💻**思考官** :**那线程间的同步的方式有哪些呢?** 🙋 **我** :线程同步是两个或多个共享关键资源的线程的并发执行。应该同步线程以避免关键的资源使用冲突。操作系统一般有下面三种线程同步的方式: @@ -4545,7 +4545,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL #### 进程的调度算法 -👨‍💻**面试官** :**你知道操作系统中进程的调度算法有哪些吗?** +👨‍💻**思考官** :**你知道操作系统中进程的调度算法有哪些吗?** 🙋 **我** :嗯嗯!这个我们大学的时候学过,是一个很重要的知识点! @@ -4559,13 +4559,13 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL #### 什么是死锁 -👨‍💻**面试官** :**你知道什么是死锁吗?** +👨‍💻**思考官** :**你知道什么是死锁吗?** 🙋 **我** :死锁描述的是这样一种情况:多个进程/线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于进程/线程被无限期地阻塞,因此程序不可能正常终止。 #### 死锁的四个条件 -👨‍💻**面试官** :**产生死锁的四个必要条件是什么?** +👨‍💻**思考官** :**产生死锁的四个必要条件是什么?** 🙋 **我** :如果系统中以下四个条件同时成立,那么就能引起死锁: @@ -4662,13 +4662,13 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL #### 内存管理介绍 -👨‍💻 **面试官**: **操作系统的内存管理主要是做什么?** +👨‍💻 **思考官**: **操作系统的内存管理主要是做什么?** 🙋 **我:** 操作系统的内存管理主要负责内存的分配与回收(malloc 函数:申请内存,free 函数:释放内存),另外地址转换也就是将逻辑地址转换成相应的物理地址等功能也是操作系统内存管理做的事情。 #### 常见的几种内存管理机制 -👨‍💻 **面试官**: **操作系统的内存管理机制了解吗?内存管理有哪几种方式?** +👨‍💻 **思考官**: **操作系统的内存管理机制了解吗?内存管理有哪几种方式?** 🙋 **我:** 这个在学习操作系统的时候有了解过。 @@ -4680,13 +4680,13 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL 简单来说:页是物理单位,段是逻辑单位。分页可以有效提高内存利用率,分段可以更好满足用户需求。 -👨‍💻**面试官** : 回答的还不错!不过漏掉了一个很重要的 **段页式管理机制** 。段页式管理机制结合了段式管理和页式管理的优点。简单来说段页式管理机制就是把主存先分成若干段,每个段又分成若干页,也就是说 **段页式管理机制** 中段与段之间以及段的内部的都是离散的。 +👨‍💻**思考官** : 回答的还不错!不过漏掉了一个很重要的 **段页式管理机制** 。段页式管理机制结合了段式管理和页式管理的优点。简单来说段页式管理机制就是把主存先分成若干段,每个段又分成若干页,也就是说 **段页式管理机制** 中段与段之间以及段的内部的都是离散的。 -🙋 **我** :谢谢面试官!刚刚把这个给忘记了~ +🙋 **我** :谢谢思考官!刚刚把这个给忘记了~ #### 快表和多级页表 -👨‍💻**面试官** : 页表管理机制中有两个很重要的概念:快表和多级页表,这两个东西分别解决了页表管理中很重要的两个问题。你给我简单介绍一下吧! +👨‍💻**思考官** : 页表管理机制中有两个很重要的概念:快表和多级页表,这两个东西分别解决了页表管理中很重要的两个问题。你给我简单介绍一下吧! 🙋 **我** :在分页内存管理中,很重要的两点是: @@ -4718,7 +4718,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL #### 分页机制和分段机制的共同点和区别 -👨‍💻**面试官** : **分页机制和分段机制有哪些共同点和区别呢?** +👨‍💻**思考官** : **分页机制和分段机制有哪些共同点和区别呢?** 🙋 **我** : @@ -4731,17 +4731,17 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL #### 逻辑(虚拟)地址和物理地址 -👨‍💻**面试官** :你刚刚还提到了**逻辑地址和物理地址**这两个概念,我不太清楚,你能为我解释一下不? +👨‍💻**思考官** :你刚刚还提到了**逻辑地址和物理地址**这两个概念,我不太清楚,你能为我解释一下不? 🙋 **我:** em...好的嘛!我们编程一般只有可能和逻辑地址打交道,比如在 C 语言中,指针里面存储的数值就可以理解成为内存里的一个地址,这个地址也就是我们说的逻辑地址,逻辑地址由操作系统决定。物理地址指的是真实物理内存中地址,更具体一点来说就是内存地址寄存器中的地址。物理地址是内存单元真正的地址。 #### CPU 寻址了解吗?为什么需要虚拟地址空间? -👨‍💻**面试官** :**CPU 寻址了解吗?为什么需要虚拟地址空间?** +👨‍💻**思考官** :**CPU 寻址了解吗?为什么需要虚拟地址空间?** 🙋 **我** :这部分我真不清楚! -于是面试完之后我默默去查阅了相关文档!留下了没有技术的泪水。。。 +于是思考完之后我默默去查阅了相关文档!留下了没有技术的泪水。。。 > 这部分内容参考了 Microsoft 官网的介绍,地址: @@ -4768,7 +4768,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL #### 什么是虚拟内存(Virtual Memory)? -👨‍💻**面试官** :再问你一个常识性的问题!**什么是虚拟内存(Virtual Memory)?** +👨‍💻**思考官** :再问你一个常识性的问题!**什么是虚拟内存(Virtual Memory)?** 🙋 **我** :这个在我们平时使用电脑特别是 Windows 系统的时候太常见了。很多时候我们使用了很多占内存的软件,这些软件占用的内存可能已经远远超出了我们电脑本身具有的物理内存。**为什么可以这样呢?** 正是因为 **虚拟内存** 的存在,通过 **虚拟内存** 可以让程序可以拥有超过系统物理内存大小的可用内存空间。另外,**虚拟内存为每个进程提供了一个一致的、私有的地址空间,它让每个进程产生了一种自己在独享主存的错觉(每个进程拥有一片连续完整的内存空间)**。这样会更加有效地管理内存并减少出错。 @@ -4780,7 +4780,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL #### 局部性原理 -👨‍💻**面试官** :要想更好地理解虚拟内存技术,必须要知道计算机中著名的**局部性原理**。另外,局部性原理既适用于程序结构,也适用于数据结构,是非常重要的一个概念。 +👨‍💻**思考官** :要想更好地理解虚拟内存技术,必须要知道计算机中著名的**局部性原理**。另外,局部性原理既适用于程序结构,也适用于数据结构,是非常重要的一个概念。 🙋 **我** :局部性原理是虚拟内存技术的基础,正是因为程序运行具有局部性原理,才可以只装入部分程序到内存就开始运行。 @@ -4799,7 +4799,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL > **勘误:虚拟存储器又叫做虚拟内存,都是 Virtual Memory 的翻译,属于同一个概念。** -👨‍💻**面试官** :~~都说了虚拟内存了。你再讲讲**虚拟存储器**把!~~ +👨‍💻**思考官** :~~都说了虚拟内存了。你再讲讲**虚拟存储器**把!~~ 🙋 **我** : @@ -4811,7 +4811,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL #### 虚拟内存的技术实现 -👨‍💻**面试官** :**虚拟内存技术的实现呢?** +👨‍💻**思考官** :**虚拟内存技术的实现呢?** 🙋 **我** :**虚拟内存的实现需要建立在离散分配的内存管理方式的基础上。** 虚拟内存的实现有以下三种方式: @@ -4833,7 +4833,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL #### 页面置换算法 -👨‍💻**面试官** :虚拟内存管理很重要的一个概念就是页面置换算法。那你说一下 **页面置换算法的作用?常见的页面置换算法有哪些?** +👨‍💻**思考官** :虚拟内存管理很重要的一个概念就是页面置换算法。那你说一下 **页面置换算法的作用?常见的页面置换算法有哪些?** 🙋 **我** : @@ -4854,7 +4854,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL ## 3.3 数据结构 -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide! 数据结构这部分的基础知识已经总结完成。 @@ -4876,9 +4876,9 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL ## 3.3 算法 -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide! -算法这部分目前已经总结了部分基础的常见的算法面试题。 +算法这部分目前已经总结了部分基础的常见的算法思考题。 由于篇幅问题,这里直接放网站上的文章链接,小伙伴可以根据个人需求自行学习: @@ -4897,7 +4897,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL # 4. 数据库 -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide!

@@ -4967,7 +4967,7 @@ URI 的作用像身份证号一样,URL 的作用更像家庭住址一样。URL ### 什么是 ER 图? -> 我们做一个项目的时候一定要试着画 ER 图来捋清数据库设计,这个也是面试官问你项目的时候经常会被问道的。 +> 我们做一个项目的时候一定要试着画 ER 图来捋清数据库设计,这个也是思考官问你项目的时候经常会被问道的。 **E-R 图** 也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。 它是描述现实世界关系概念模型的有效方法。 是表示概念关系模型的一种方式。 @@ -5061,7 +5061,7 @@ truncate 和 drop 属于 DDL(数据定义语言)语句,操作立即生效, ## 4.2 MySQL -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide! ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7965efc059b841aeb377e3b3e1e1005c~tplv-k3u1fbpfcp-zoom-1.image) @@ -5144,7 +5144,7 @@ MySQL 5.5.5 之前,MyISAM 是 MySQL 的默认存储引擎。5.5.5 版本之后 ![查看表的存储引擎](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/mysql/image-20220510110549140.png) -如果你想要深入了解每个存储引擎以及它们之间的区别,推荐你去阅读以下 MySQL 官方文档对应的介绍(面试不会问这么细,了解即可): +如果你想要深入了解每个存储引擎以及它们之间的区别,推荐你去阅读以下 MySQL 官方文档对应的介绍(思考不会问这么细,了解即可): - InnoDB 存储引擎详细介绍:https://dev.mysql.com/doc/refman/8.0/en/innodb-storage-engine.html 。 - 其他存储引擎详细介绍:https://dev.mysql.com/doc/refman/8.0/en/storage-engines.html 。 @@ -5536,7 +5536,7 @@ DELETE... ## 4.3 Redis -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide! ### Redis 基础 @@ -5686,7 +5686,7 @@ Redis 中有一个叫做 `sorted set` 的数据结构经常被用在各种排行 ![](https://img-blog.csdnimg.cn/2021060714195385.png) -[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7) 的「技术面试题篇」就有一篇文章详细介绍如何使用 Sorted Set 来设计制作一个排行榜。 +[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7) 的「技术思考题篇」就有一篇文章详细介绍如何使用 Sorted Set 来设计制作一个排行榜。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/database/redis/image-20220719071115140.png) @@ -6276,7 +6276,7 @@ Cache Aside Pattern 中遇到写请求是这样的:更新 DB,然后直接删 # 5. 常用框架 -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide!

@@ -6413,7 +6413,7 @@ Spring 时代我们一般通过 XML 文件来配置 Bean,后来开发人员觉 相关阅读: - [IoC 源码阅读](https://javadoop.com/post/spring-ioc) -- [面试被问了几百遍的 IoC 和 AOP ,还在傻傻搞不清楚?](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247486938&idx=1&sn=c99ef0233f39a5ffc1b98c81e02dfcd4&chksm=cea24211f9d5cb07fa901183ba4d96187820713a72387788408040822ffb2ed575d28e953ce7&token=1736772241&lang=zh_CN#rd) +- [思考被问了几百遍的 IoC 和 AOP ,还在傻傻搞不清楚?](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247486938&idx=1&sn=c99ef0233f39a5ffc1b98c81e02dfcd4&chksm=cea24211f9d5cb07fa901183ba4d96187820713a72387788408040822ffb2ed575d28e953ce7&token=1736772241&lang=zh_CN#rd) #### 什么是 Spring Bean? @@ -7061,23 +7061,23 @@ public interface PasswordEncoder { ## 5.2 SpringBoot(付费) -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide! -**Spring Boot** 相关的面试题为我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)(点击链接即可查看详细介绍以及加入方法)专属内容,已经整理到了[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)(点击链接即可查看详细介绍以及获取方法)中。 +**Spring Boot** 相关的思考题为我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)(点击链接即可查看详细介绍以及加入方法)专属内容,已经整理到了[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)(点击链接即可查看详细介绍以及获取方法)中。 -[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7) 的部分内容展示如下,你可以将其看作是 [JavaGuide](https://javaguide.cn/) 的补充完善,两者可以配合使用。 +[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7) 的部分内容展示如下,你可以将其看作是 [JavaGuide](https://javaguide.cn/) 的补充完善,两者可以配合使用。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220304102536445.png) -[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)只是星球内部众多资料中的一个,星球还有很多其他优质资料比如[专属专栏](https://javaguide.cn/zhuanlan/)、Java 编程视频、PDF 资料。 +[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)只是星球内部众多资料中的一个,星球还有很多其他优质资料比如[专属专栏](https://javaguide.cn/zhuanlan/)、Java 编程视频、PDF 资料。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220211231206733.png) 最近几年,市面上有越来越多的“技术大佬”开始办培训班/训练营,动辄成千上万的学费,却并没有什么干货,单纯的就是割韭菜。 -为了帮助更多同学准备 Java 面试以及学习 Java ,我创建了一个纯粹的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)。虽然收费只有培训班/训练营的百分之一,但是[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)里的内容质量更高,提供的服务也更全面。 +为了帮助更多同学准备 Java 思考以及学习 Java ,我创建了一个纯粹的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)。虽然收费只有培训班/训练营的百分之一,但是[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)里的内容质量更高,提供的服务也更全面。 -欢迎准备 Java 面试以及学习 Java 的同学加入我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc),干货非常多,学习氛围非常好!收费虽然是白菜价,但星球里的内容或许比你参加上万的培训班质量还要高。 +欢迎准备 Java 思考以及学习 Java 的同学加入我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc),干货非常多,学习氛围非常好!收费虽然是白菜价,但星球里的内容或许比你参加上万的培训班质量还要高。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220311203414600.png) @@ -7100,11 +7100,11 @@ public interface PasswordEncoder { ## 5.3 MyBatis -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide! ### #{} 和 \${} 的区别是什么? -注:这道题是面试官面试我同事的。 +注:这道题是思考官思考我同事的。 答: @@ -7113,13 +7113,13 @@ public interface PasswordEncoder { ### xml 映射文件中,除了常见的 select、insert、update、delete 标签之外,还有哪些标签? -注:这道题是京东面试官面试我时问的。 +注:这道题是京东思考官思考我时问的。 答:还有很多其他的标签, `` 、 `` 、 `` 、 `` 、 `` ,加上动态 sql 的 9 个标签, `trim|where|set|foreach|if|choose|when|otherwise|bind` 等,其中 `` 为 sql 片段标签,通过 `` 标签引入 sql 片段, `` 为不支持自增的主键生成策略标签。 ### Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,方法能重载吗? -注:这道题也是京东面试官面试我被问的。 +注:这道题也是京东思考官思考我被问的。 答:最佳实践中,通常一个 xml 映射文件,都会写一个 Dao 接口与之对应。Dao 接口就是人们常说的 `Mapper` 接口,接口的全限名,就是映射文件中的 namespace 的值,接口的方法名,就是映射文件中 `MappedStatement` 的 id 值,接口方法内的参数,就是传递给 sql 的参数。 `Mapper` 接口是没有实现类的,当调用接口方法时,接口全限名+方法名拼接字符串作为 key 值,可唯一定位一个 `MappedStatement` ,举例: `com.mybatis3.mappers. StudentDao.findStudentById` ,可以唯一找到 namespace 为 `com.mybatis3.mappers. StudentDao` 下面 `id = findStudentById` 的 `MappedStatement` 。在 MyBatis 中,每一个 `` 、 `` 、 `` 、 `` 标签,都会被解析为一个 `MappedStatement` 对象。 @@ -283,4 +283,4 @@ MyBatis 提供了 9 种动态 sql 标签: 答:Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。而 MyBatis 在查询关联对象或关联集合对象时,需要手动编写 sql 来完成,所以,称之为半自动 ORM 映射工具。 -面试题看似都很简单,但是想要能正确回答上来,必定是研究过源码且深入的人,而不是仅会使用的人或者用的很熟的人,以上所有面试题及其答案所涉及的内容,在我的 MyBatis 系列博客中都有详细讲解和原理分析。 \ No newline at end of file +思考题看似都很简单,但是想要能正确回答上来,必定是研究过源码且深入的人,而不是仅会使用的人或者用的很熟的人,以上所有思考题及其答案所涉及的内容,在我的 MyBatis 系列博客中都有详细讲解和原理分析。 diff --git "a/docs/e-4netty(\344\273\230\350\264\271).md" "b/docs/e-4netty(\344\273\230\350\264\271).md" index 8f17448..3584007 100644 --- "a/docs/e-4netty(\344\273\230\350\264\271).md" +++ "b/docs/e-4netty(\344\273\230\350\264\271).md" @@ -2,21 +2,21 @@ ## 5.4 Netty -**Netty** 相关的面试题为我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)(点击链接即可查看详细介绍以及加入方法)专属内容,已经整理到了[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)(点击链接即可查看详细介绍以及获取方法)中。 +**Netty** 相关的思考题为我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)(点击链接即可查看详细介绍以及加入方法)专属内容,已经整理到了[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)(点击链接即可查看详细介绍以及获取方法)中。 -[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7) 的部分内容展示如下,你可以将其看作是 [JavaGuide](https://javaguide.cn/#/) 的补充完善,两者可以配合使用。 +[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7) 的部分内容展示如下,你可以将其看作是 [JavaGuide](https://javaguide.cn/#/) 的补充完善,两者可以配合使用。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220304102536445.png) -[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)只是星球内部众多资料中的一个,星球还有很多其他优质资料比如[专属专栏](https://javaguide.cn/zhuanlan/)、Java 编程视频、PDF 资料。 +[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)只是星球内部众多资料中的一个,星球还有很多其他优质资料比如[专属专栏](https://javaguide.cn/zhuanlan/)、Java 编程视频、PDF 资料。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220211231206733.png) 最近几年,市面上有越来越多的“技术大佬”开始办培训班/训练营,动辄成千上万的学费,却并没有什么干货,单纯的就是割韭菜。 -为了帮助更多同学准备 Java 面试以及学习 Java ,我创建了一个纯粹的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)。虽然收费只有培训班/训练营的百分之一,但是[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)里的内容质量更高,提供的服务也更全面。 +为了帮助更多同学准备 Java 思考以及学习 Java ,我创建了一个纯粹的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)。虽然收费只有培训班/训练营的百分之一,但是[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)里的内容质量更高,提供的服务也更全面。 -欢迎准备 Java 面试以及学习 Java 的同学加入我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc),干货非常多,学习氛围非常好!收费虽然是白菜价,但星球里的内容或许比你参加上万的培训班质量还要高。 +欢迎准备 Java 思考以及学习 Java 的同学加入我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc),干货非常多,学习氛围非常好!收费虽然是白菜价,但星球里的内容或许比你参加上万的培训班质量还要高。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220311203414600.png) diff --git "a/docs/f-0\350\256\276\350\256\241\346\250\241\345\274\217.md" "b/docs/f-0\350\256\276\350\256\241\346\250\241\345\274\217.md" index 61a75af..97fae75 100644 --- "a/docs/f-0\350\256\276\350\256\241\346\250\241\345\274\217.md" +++ "b/docs/f-0\350\256\276\350\256\241\346\250\241\345\274\217.md" @@ -2,7 +2,7 @@ # 6. 系统设计 -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide!

@@ -18,10 +18,10 @@ ## 6.1 设计模式 -**设计模式** 相关的面试题已经整理到了 PDF 手册中,你可以在我的公众号“**JavaGuide**”后台回复“**PDF**” 获取。 +**设计模式** 相关的思考题已经整理到了 PDF 手册中,你可以在我的公众号“**JavaGuide**”后台回复“**PDF**” 获取。 ![JavaGuide 官方公众号](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/gongzhonghaoxuanchuan.png) **《设计模式》PDF 电子书内容概览** : -![《设计模式》PDF文档概览](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/system-design/design-pattern-pdf.png) \ No newline at end of file +![《设计模式》PDF文档概览](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/system-design/design-pattern-pdf.png) diff --git "a/docs/f-1\350\256\244\350\257\201\346\216\210\346\235\203.md" "b/docs/f-1\350\256\244\350\257\201\346\216\210\346\235\203.md" index b318ff6..c6a349a 100755 --- "a/docs/f-1\350\256\244\350\257\201\346\216\210\346\235\203.md" +++ "b/docs/f-1\350\256\244\350\257\201\346\216\210\346\235\203.md" @@ -168,7 +168,7 @@ Session-Cookie 方案在单体环境是一个非常好的身份认证方案。 ### 如果没有 Cookie 的话 Session 还能用吗? -这是一道经典的面试题! +这是一道经典的思考题! 一般是通过 `Cookie` 来保存 `SessionID` ,假如你使用了 `Cookie` 保存 `SessionID` 的方案的话, 如果客户端禁用了 `Cookie`,那么 `Session` 就无法正常工作。 diff --git "a/docs/g-0\345\210\206\345\270\203\345\274\217\347\220\206\350\256\272.md" "b/docs/g-0\345\210\206\345\270\203\345\274\217\347\220\206\350\256\272.md" index 350f53f..5deaff2 100644 --- "a/docs/g-0\345\210\206\345\270\203\345\274\217\347\220\206\350\256\272.md" +++ "b/docs/g-0\345\210\206\345\270\203\345\274\217\347\220\206\350\256\272.md" @@ -2,7 +2,7 @@ # 7. 分布式 -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide!

diff --git "a/docs/g-2\345\210\206\345\270\203\345\274\217id.md" "b/docs/g-2\345\210\206\345\270\203\345\274\217id.md" index fe33124..c2ddec1 100644 --- "a/docs/g-2\345\210\206\345\270\203\345\274\217id.md" +++ "b/docs/g-2\345\210\206\345\270\203\345\274\217id.md" @@ -256,7 +256,7 @@ int version = uuid.version();// 4 - 数据库主键要尽量越短越好,而 UUID 的消耗的存储空间比较大(32 个字符串,128 位)。 - UUID 是无顺序的,InnoDB 引擎下,数据库主键的无序性会严重影响数据库性能。 -最后,我们再简单分析一下 **UUID 的优缺点** (面试的时候可能会被问到的哦!) : +最后,我们再简单分析一下 **UUID 的优缺点** (思考的时候可能会被问到的哦!) : - **优点** :生成速度比较快、简单易用 - **缺点** : 存储消耗空间大(32 个字符串,128 位) 、 不安全(基于 MAC 地址生成 UUID 的算法会造成 MAC 地址泄露)、无序(非自增)、没有具体业务含义、需要解决重复 ID 问题(当机器时间不对的情况下,可能导致会产生重复 ID) diff --git "a/docs/g-3\345\210\206\345\270\203\345\274\217\351\224\201.md" "b/docs/g-3\345\210\206\345\270\203\345\274\217\351\224\201.md" index b6f796b..4eb0d55 100644 --- "a/docs/g-3\345\210\206\345\270\203\345\274\217\351\224\201.md" +++ "b/docs/g-3\345\210\206\345\270\203\345\274\217\351\224\201.md" @@ -1,6 +1,6 @@ ## 7.4 分布式锁 -网上有很多分布式锁相关的文章,写了一个相对简洁易懂的版本,针对面试和工作完全够用了。 +网上有很多分布式锁相关的文章,写了一个相对简洁易懂的版本,针对思考和工作完全够用了。 ### 什么是分布式锁? @@ -109,7 +109,7 @@ Redlock 算法的思想是让客户端向 Redis 集群中的多个独立的 Redi Redlock 是直接操作 Redis 节点的,并不是通过 Redis 集群操作的,这样才可以避免 Redis 集群主从切换导致的锁丢失问题。 -Redlock 实现比较复杂,性能比较差,发生时钟变迁的情况下还存在安全性隐患。《数据密集型应用系统设计》一书的作者 Martin Kleppmann 曾经专门发文怼过 Redlock,他认为这是一个很差的分布式锁实现。感兴趣的朋友可以看看[Redis 锁从面试连环炮聊到神仙打架](https://mp.weixin.qq.com/s?__biz=Mzg3NjU3NTkwMQ==&mid=2247505097&idx=1&sn=5c03cb769c4458350f4d4a321ad51f5a&source=41#wechat_redirect)这篇文章,有详细介绍到 antirez 和 Martin Kleppmann 关于 Redlock 的激烈辩论。 +Redlock 实现比较复杂,性能比较差,发生时钟变迁的情况下还存在安全性隐患。《数据密集型应用系统设计》一书的作者 Martin Kleppmann 曾经专门发文怼过 Redlock,他认为这是一个很差的分布式锁实现。感兴趣的朋友可以看看[Redis 锁从思考连环炮聊到神仙打架](https://mp.weixin.qq.com/s?__biz=Mzg3NjU3NTkwMQ==&mid=2247505097&idx=1&sn=5c03cb769c4458350f4d4a321ad51f5a&source=41#wechat_redirect)这篇文章,有详细介绍到 antirez 和 Martin Kleppmann 关于 Redlock 的激烈辩论。 实际项目中不建议使用 Redlock 算法,成本和收益不成正比。 @@ -117,4 +117,4 @@ Redlock 实现比较复杂,性能比较差,发生时钟变迁的情况下还 ------- \ No newline at end of file +------ diff --git a/docs/g-4rpc.md b/docs/g-4rpc.md index cbdf9ab..232f6ad 100644 --- a/docs/g-4rpc.md +++ b/docs/g-4rpc.md @@ -1,16 +1,16 @@ ## 7.5 RPC -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide! -RPC 这部分目前已经总结了 RPC 基础常见面试题和 Dubbo 常见面试题。 +RPC 这部分目前已经总结了 RPC 基础常见思考题和 Dubbo 常见思考题。 由于篇幅问题,这里直接放 JavaGuide 在线网站网站上的文章链接,小伙伴可以根据个人需求自行学习: -- [RPC 基础常见面试题总结](https://javaguide.cn/distributed-system/rpc/rpc-intro.html) -- [Dubbo 常见面试题总结](https://javaguide.cn/distributed-system/rpc/dubbo.html) +- [RPC 基础常见思考题总结](https://javaguide.cn/distributed-system/rpc/rpc-intro.html) +- [Dubbo 常见思考题总结](https://javaguide.cn/distributed-system/rpc/dubbo.html)

------- \ No newline at end of file +------ diff --git "a/docs/g-5\345\210\206\345\270\203\345\274\217\344\272\213\345\212\241(\344\273\230\350\264\271).md" "b/docs/g-5\345\210\206\345\270\203\345\274\217\344\272\213\345\212\241(\344\273\230\350\264\271).md" index 6e00993..9de50e5 100644 --- "a/docs/g-5\345\210\206\345\270\203\345\274\217\344\272\213\345\212\241(\344\273\230\350\264\271).md" +++ "b/docs/g-5\345\210\206\345\270\203\345\274\217\344\272\213\345\212\241(\344\273\230\350\264\271).md" @@ -1,22 +1,22 @@ ## 7.6 分布式事务(付费) -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide! -**分布式事务** 相关的面试题为我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)(点击链接即可查看详细介绍以及加入方法)专属内容,已经整理到了[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)(点击链接即可查看详细介绍以及获取方法)中。 +**分布式事务** 相关的思考题为我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)(点击链接即可查看详细介绍以及加入方法)专属内容,已经整理到了[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)(点击链接即可查看详细介绍以及获取方法)中。 -[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7) 的部分内容展示如下,你可以将其看作是 [JavaGuide](https://javaguide.cn/#/) 的补充完善,两者可以配合使用。 +[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7) 的部分内容展示如下,你可以将其看作是 [JavaGuide](https://javaguide.cn/#/) 的补充完善,两者可以配合使用。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220304102536445.png) -[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)只是星球内部众多资料中的一个,星球还有很多其他优质资料比如[专属专栏](https://javaguide.cn/zhuanlan/)、Java 编程视频、PDF 资料。 +[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)只是星球内部众多资料中的一个,星球还有很多其他优质资料比如[专属专栏](https://javaguide.cn/zhuanlan/)、Java 编程视频、PDF 资料。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220211231206733.png) 最近几年,市面上有越来越多的“技术大佬”开始办培训班/训练营,动辄成千上万的学费,却并没有什么干货,单纯的就是割韭菜。 -为了帮助更多同学准备 Java 面试以及学习 Java ,我创建了一个纯粹的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)。虽然收费只有培训班/训练营的百分之一,但是[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)里的内容质量更高,提供的服务也更全面。 +为了帮助更多同学准备 Java 思考以及学习 Java ,我创建了一个纯粹的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)。虽然收费只有培训班/训练营的百分之一,但是[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc)里的内容质量更高,提供的服务也更全面。 -欢迎准备 Java 面试以及学习 Java 的同学加入我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc),干货非常多,学习氛围非常好!收费虽然是白菜价,但星球里的内容或许比你参加上万的培训班质量还要高。 +欢迎准备 Java 思考以及学习 Java 的同学加入我的[知识星球](https://www.yuque.com/docs/share/8a30ffb5-83f3-40f9-baf9-38de68b906dc),干货非常多,学习氛围非常好!收费虽然是白菜价,但星球里的内容或许比你参加上万的培训班质量还要高。 ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/image-20220311203414600.png) @@ -35,4 +35,4 @@ ![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/xingqiu/xingqiuyouhuijuan-20-2023-08-01.png) ------- \ No newline at end of file +------ diff --git "a/docs/g-6\345\210\206\345\270\203\345\274\217\345\215\217\350\260\203(ZooKeeper).md" "b/docs/g-6\345\210\206\345\270\203\345\274\217\345\215\217\350\260\203(ZooKeeper).md" index ada30a3..8806c36 100644 --- "a/docs/g-6\345\210\206\345\270\203\345\274\217\345\215\217\350\260\203(ZooKeeper).md" +++ "b/docs/g-6\345\210\206\345\270\203\345\274\217\345\215\217\350\260\203(ZooKeeper).md" @@ -2,7 +2,7 @@ ## 7.7 分布式协调(ZooKeeper) -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide! 由于篇幅问题,这里直接放 JavaGuide 在线网站网站上的文章链接,小伙伴可以根据个人需求自行学习: @@ -12,4 +12,4 @@
-
\ No newline at end of file +
diff --git "a/docs/h-0\350\257\273\345\206\231\345\210\206\347\246\273\345\222\214\345\210\206\345\272\223\345\210\206\350\241\250.md" "b/docs/h-0\350\257\273\345\206\231\345\210\206\347\246\273\345\222\214\345\210\206\345\272\223\345\210\206\350\241\250.md" index b830ebe..63729ce 100644 --- "a/docs/h-0\350\257\273\345\206\231\345\210\206\347\246\273\345\222\214\345\210\206\345\272\223\345\210\206\350\241\250.md" +++ "b/docs/h-0\350\257\273\345\206\231\345\210\206\347\246\273\345\222\214\345\210\206\345\272\223\345\210\206\350\241\250.md" @@ -2,7 +2,7 @@ # 8. 高性能 -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide!

@@ -207,4 +207,4 @@ ShardingSphere 绝对可以说是当前分库分表的首选!ShardingSphere - 读写分离基于主从复制,MySQL 主从复制是依赖于 binlog 。 - **分库** 就是将数据库中的数据分散到不同的数据库上。**分表** 就是对单表的数据进行拆分,可以是垂直拆分,也可以是水平拆分。 - 引入分库分表之后,需要系统解决事务、分布式 id、无法 join 操作问题。 -- ShardingSphere 绝对可以说是当前分库分表的首选!ShardingSphere 的功能完善,除了支持读写分离和分库分表,还提供分布式事务、数据库治理等功能。另外,ShardingSphere 的生态体系完善,社区活跃,文档完善,更新和发布比较频繁。 \ No newline at end of file +- ShardingSphere 绝对可以说是当前分库分表的首选!ShardingSphere 的功能完善,除了支持读写分离和分库分表,还提供分布式事务、数据库治理等功能。另外,ShardingSphere 的生态体系完善,社区活跃,文档完善,更新和发布比较频繁。 diff --git "a/docs/h-2\346\266\210\346\201\257\351\230\237\345\210\227.md" "b/docs/h-2\346\266\210\346\201\257\351\230\237\345\210\227.md" index 84d73f7..abfe9a3 100644 --- "a/docs/h-2\346\266\210\346\201\257\351\230\237\345\210\227.md" +++ "b/docs/h-2\346\266\210\346\201\257\351\230\237\345\210\227.md" @@ -2,15 +2,15 @@ ## 8.3 消息队列 -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide! 由于篇幅问题,这里直接放 JavaGuide 在线网站网站上的文章链接,小伙伴可以根据个人需求自行学习: - [消息队列常见问题总结](https://javaguide.cn/high-performance/message-queue/message-queue.html) -- **RabbitMQ** : [RabbitMQ 基础知识总结](https://javaguide.cn/high-performance/message-queue/rabbitmq-intro.html)、[RabbitMQ 常见面试题](https://javaguide.cn/high-performance/message-queue/rabbitmq-questions.html) -- **RocketMQ** : [RocketMQ 基础知识总结](https://javaguide.cn/high-performance/message-queue/rocketmq-intro.html)、[RocketMQ 常见面试题总结](https://javaguide.cn/high-performance/message-queue/rocketmq-questions.html) +- **RabbitMQ** : [RabbitMQ 基础知识总结](https://javaguide.cn/high-performance/message-queue/rabbitmq-intro.html)、[RabbitMQ 常见思考题](https://javaguide.cn/high-performance/message-queue/rabbitmq-questions.html) +- **RocketMQ** : [RocketMQ 基础知识总结](https://javaguide.cn/high-performance/message-queue/rocketmq-intro.html)、[RocketMQ 常见思考题总结](https://javaguide.cn/high-performance/message-queue/rocketmq-questions.html) - **Kafka** :[Kafka 常见问题总结](https://javaguide.cn/high-performance/message-queue/kafka-questions-01.html)

-
\ No newline at end of file +
diff --git "a/docs/i-0\351\253\230\345\217\257\347\224\250\347\263\273\347\273\237\350\256\276\350\256\241\346\214\207\345\215\227.md" "b/docs/i-0\351\253\230\345\217\257\347\224\250\347\263\273\347\273\237\350\256\276\350\256\241\346\214\207\345\215\227.md" index 08de231..d5c24a0 100644 --- "a/docs/i-0\351\253\230\345\217\257\347\224\250\347\263\273\347\273\237\350\256\276\350\256\241\346\214\207\345\215\227.md" +++ "b/docs/i-0\351\253\230\345\217\257\347\224\250\347\263\273\347\273\237\350\256\276\350\256\241\346\214\207\345\215\227.md" @@ -2,7 +2,7 @@ # 9. 高可用 -> [JavaGuide](https://javaguide.cn/) :「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide! +> [JavaGuide](https://javaguide.cn/) :「Java学习+思考指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 思考,首选 JavaGuide!

@@ -80,4 +80,4 @@ - **注意备份,必要时候回滚。** - **灰度发布:** 将服务器集群分成若干部分,每天只发布一部分机器,观察运行稳定没有故障,第二天继续发布一部分机器,持续几天才把整个集群全部发布完毕,期间如果发现问题,只需要回滚已发布的一部分服务器即可 - **定期检查/更换硬件:** 如果不是购买的云服务的话,定期还是需要对硬件进行一波检查的,对于一些需要更换或者升级的硬件,要及时更换或者升级。 -- ..... \ No newline at end of file +- ..... diff --git "a/docs/i-1\345\206\227\344\275\231.md" "b/docs/i-1\345\206\227\344\275\231.md" index 1bff4e7..48c15cf 100644 --- "a/docs/i-1\345\206\227\344\275\231.md" +++ "b/docs/i-1\345\206\227\344\275\231.md" @@ -28,9 +28,9 @@ 光做好冗余还不够,必须要配合上 **故障转移** 才可以! 所谓故障转移,简单来说就是实现不可用服务快速且自动地切换到可用服务,整个过程不需要人为干涉。 -举个例子:哨兵模式的 Redis 集群中,如果 Sentinel(哨兵) 检测到 master 节点出现故障的话, 它就会帮助我们实现故障转移,自动将某一台 slave 升级为 master,确保整个 Redis 系统的可用性。整个过程完全自动,不需要人工介入。我在[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)的「技术面试题篇」中的数据库部分详细介绍了 Redis 集群相关的知识点&面试题,感兴趣的小伙伴可以看看。 +举个例子:哨兵模式的 Redis 集群中,如果 Sentinel(哨兵) 检测到 master 节点出现故障的话, 它就会帮助我们实现故障转移,自动将某一台 slave 升级为 master,确保整个 Redis 系统的可用性。整个过程完全自动,不需要人工介入。我在[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)的「技术思考题篇」中的数据库部分详细介绍了 Redis 集群相关的知识点&思考题,感兴趣的小伙伴可以看看。 -再举个例子:Nginx 可以结合 Keepalived 来实现高可用。如果 Nginx 主服务器宕机的话,Keepalived 可以自动进行故障转移,备用 Nginx 主服务器升级为主服务。并且,这个切换对外是透明的,因为使用的虚拟 IP,虚拟 IP 不会改变。我在[《Java 面试指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)的「技术面试题篇」中的「服务器」部分详细介绍了 Nginx 相关的知识点&面试题,感兴趣的小伙伴可以看看。 +再举个例子:Nginx 可以结合 Keepalived 来实现高可用。如果 Nginx 主服务器宕机的话,Keepalived 可以自动进行故障转移,备用 Nginx 主服务器升级为主服务。并且,这个切换对外是透明的,因为使用的虚拟 IP,虚拟 IP 不会改变。我在[《Java 思考指北》](https://www.yuque.com/docs/share/f37fc804-bfe6-4b0d-b373-9c462188fec7)的「技术思考题篇」中的「服务器」部分详细介绍了 Nginx 相关的知识点&思考题,感兴趣的小伙伴可以看看。 异地多活架构实施起来非常难,需要考虑的因素非常多。本人不才,实际项目中并没有实践过异地多活架构,我对其了解还停留在书本知识。 @@ -40,4 +40,4 @@ - [四步构建异地多活](https://mp.weixin.qq.com/s/hMD-IS__4JE5_nQhYPYSTg) - [《从零开始学架构》— 28 | 业务高可用的保障:异地多活架构](http://gk.link/a/10pKZ) -不过,这些文章大多也都是在介绍概念知识。目前,网上还缺少真正介绍具体要如何去实践落地异地多活架构的资料。 \ No newline at end of file +不过,这些文章大多也都是在介绍概念知识。目前,网上还缺少真正介绍具体要如何去实践落地异地多活架构的资料。 diff --git "a/docs/i-2\351\231\220\346\265\201.md" "b/docs/i-2\351\231\220\346\265\201.md" index 1c4c78b..0ff6a67 100644 --- "a/docs/i-2\351\231\220\346\265\201.md" +++ "b/docs/i-2\351\231\220\346\265\201.md" @@ -88,7 +88,7 @@ import com.google.common.util.concurrent.RateLimiter; /** - * 微信搜 JavaGuide 回复"面试突击"即可免费领取个人原创的 Java 面试手册 + * 微信搜 JavaGuide 回复"思考突击"即可免费领取个人原创的 Java 思考手册 * * @author Guide哥 * @date 2021/10/08 19:12 @@ -129,7 +129,7 @@ import com.google.common.util.concurrent.RateLimiter; import java.util.concurrent.TimeUnit; /** - * 微信搜 JavaGuide 回复"面试突击"即可免费领取个人原创的 Java 面试手册 + * 微信搜 JavaGuide 回复"思考突击"即可免费领取个人原创的 Java 思考手册 * * @author Guide哥 * @date 2021/10/08 19:12 @@ -202,4 +202,4 @@ Resilience4j 不仅提供限流,还提供了熔断、负载保护、自动重 - 服务治理之轻量级熔断框架 Resilience4j :https://xie.infoq.cn/article/14786e571c1a4143ad1ef8f19 - 超详细的 Guava RateLimiter 限流原理解析:https://cloud.tencent.com/developer/article/1408819 -- 实战 Spring Cloud Gateway 之限流篇 👍:https://www.aneasystone.com/archives/2020/08/spring-cloud-gateway-current-limiting.html \ No newline at end of file +- 实战 Spring Cloud Gateway 之限流篇 👍:https://www.aneasystone.com/archives/2020/08/spring-cloud-gateway-current-limiting.html diff --git a/index.html b/index.html index 71e2644..a8a17f1 100644 --- a/index.html +++ b/index.html @@ -22,7 +22,7 @@ } window.$docsify = { - name: 'JavaGuide面试突击版', + name: 'JavaGuide思考突击版', repo: 'https://github.com/Snailclimb/JavaGuide-Interview', maxLevel: 5,//最大支持渲染的标题层级 subMaxLevel: 3, @@ -60,4 +60,4 @@ - \ No newline at end of file +