Skip to content

Commit e931806

Browse files
committed
在线工具
1 parent ea6985e commit e931806

File tree

8 files changed

+162
-102
lines changed

8 files changed

+162
-102
lines changed

docs/.vuepress/navbar.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,20 @@ export default navbar([
248248
{text: "Nginx面试题", link: "https://mp.weixin.qq.com/s/SKKEeYxif0wWJo6n57rd6A", icon: "nginx"},
249249
]
250250
},
251+
{
252+
text: "在线工具",
253+
children: [
254+
{text: "json", link: "https://www.json.cn/"},
255+
{text: "base64编解码", link: "https://c.runoob.com/front-end/693/"},
256+
{text: "时间戳转换", link: "https://www.beijing-time.org/shijianchuo/"},
257+
{text: "unicode转换", link: "https://www.fulimama.com/unicode/"},
258+
{text: "正则表达式", link: "https://www.sojson.com/regex/"},
259+
{text: "md5加密", link: "https://www.toolkk.com/tools/md5-encrypt"},
260+
{text: "流程图工具", link: "https://app.diagrams.net/"},
261+
{text: "二维码", link: "https://cli.im/"},
262+
{text: "文本比对", link: "https://c.runoob.com/front-end/8006/"},
263+
]
264+
},
251265
{
252266
text: "编程利器",
253267
children: [

docs/advance/design-pattern/8-decorator.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ head:
1313
content: 设计模式常见面试题总结,让天下没有难背的八股文!
1414
---
1515

16-
# 装饰模式
16+
# 装饰者模式
1717

1818
装饰者模式(decorator pattern):动态地将责任附加到对象上, 若要扩展功能, 装饰者提供了比继承更有弹性的替代方案。
1919

docs/campus-recruit/interview/3-baidu.md

Lines changed: 90 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -2,105 +2,107 @@
22

33
## 面经1
44

5-
shiro的组件
6-
分布式一致性算法
7-
zookeeper那些能参与投票,leader能投票吗?
8-
netty零拷贝实现
9-
volatile,如何感知到变量变化的
10-
redis高可用
11-
http如何跨域?
12-
tcp如何长链接。
13-
http如何操作浏览器缓存。
14-
用过消息队列吗?
15-
怎么自己扩展validator(参数校验)
16-
jwt组成 header payload 签名加密算法那些。
17-
rsa如何运用到jwt中
18-
synchronized和volatile的区别
19-
什么是上下文切换,URL解析过程
20-
http有那些方法,get那些
21-
进程和线程的区别。
22-
和别人协作出现冲突怎么办
23-
如何学一个新语言
24-
怎么自学的
5+
- shiro的组件
6+
- 分布式一致性算法
7+
- zookeeper那些能参与投票,leader能投票吗?
8+
- netty零拷贝实现
9+
- volatile,如何感知到变量变化的
10+
- redis高可用
11+
- http如何跨域?
12+
- tcp如何长链接。
13+
- http如何操作浏览器缓存。
14+
- 用过消息队列吗?
15+
- 怎么自己扩展validator(参数校验)
16+
- jwt组成 header payload 签名加密算法那些。
17+
- rsa如何运用到jwt中
18+
- synchronized和volatile的区别
19+
- 什么是上下文切换,URL解析过程
20+
- http有那些方法,get那些
21+
- 进程和线程的区别。
22+
- 和别人协作出现冲突怎么办
23+
- 如何学一个新语言
24+
- 怎么自学的
2525

2626
## 面经2
2727

28-
说说IO多路复用
29-
你刚刚说的多路复用针对的是各个请求(比如set,get),那返回值Redis是怎么处理的(愣住)
30-
MySQL B+树一般几层,怎么算的
31-
数据库隔离级别
32-
脏读、不可重复读、幻读(结合具体场景来讲)
33-
MySQL隔离级别分别怎么实现的
34-
MVCC
35-
redo log、undo log
36-
刷脏页的流程
37-
算法题:平方根
28+
- 说说IO多路复用
29+
- 你刚刚说的多路复用针对的是各个请求(比如set,get),那返回值Redis是怎么处理的(愣住)
30+
- MySQL B+树一般几层,怎么算的
31+
- 数据库隔离级别
32+
- 脏读、不可重复读、幻读(结合具体场景来讲)
33+
- MySQL隔离级别分别怎么实现的
34+
- MVCC
35+
- redo log、undo log
36+
- 刷脏页的流程
37+
- 算法题:平方根
3838

3939
## 面经3
4040

41-
自我介绍
42-
项目是自己练手的项目吗,怎么找的
43-
项目是从0开始搭建的,还是有用开源的脚手架
44-
秒杀大概用到哪些东西,怎么实现的
45-
MQ幂等性和消息积压问题
46-
缓存与数据库数据一致性
47-
唯一ID
48-
Java里怎么保证多个线程的互斥性
49-
一个线程有哪些状态
50-
AQS怎么理解的
51-
Spring IOC容器创建Bean的流程
52-
创建的Bean是单例还是多例的
53-
SpringCloud config是怎么在Bean创建后更新Bean的值的
54-
SpringBoot自动配置原理
55-
SpringMVC执行流程
56-
使用Spring和直接使用Java语言面向对象开发,有哪些好处
57-
怎么理解面向对象
58-
了解哪些设计模式
59-
策略模式描述一下
60-
JVM由哪些模块组成
61-
框架里打破双亲委派机制的SPI大概怎么实现的
62-
那说说双亲委派
63-
垃圾回收主要回收哪些区域
64-
怎么识别哪些是垃圾
65-
哪些是根节点
66-
什么时候会出现Full GC
67-
不同垃圾收集器的区别
68-
TCP为什么要握三次手,为什么要挥四次手,大概什么流程
69-
实现环形队列(数组,增加和删除功能)
70-
反转链表(迭代)
41+
- 自我介绍
42+
- 项目是自己练手的项目吗,怎么找的
43+
- 项目是从0开始搭建的,还是有用开源的脚手架
44+
- 秒杀大概用到哪些东西,怎么实现的
45+
- MQ幂等性和消息积压问题
46+
- 缓存与数据库数据一致性
47+
- 唯一ID
48+
- Java里怎么保证多个线程的互斥性
49+
- 一个线程有哪些状态
50+
- AQS怎么理解的
51+
- Spring IOC容器创建Bean的流程
52+
- 创建的Bean是单例还是多例的
53+
- SpringCloud config是怎么在Bean创建后更新Bean的值的
54+
- SpringBoot自动配置原理
55+
- SpringMVC执行流程
56+
- 使用Spring和直接使用Java语言面向对象开发,有哪些好处
57+
- 怎么理解面向对象
58+
- 了解哪些设计模式
59+
- 策略模式描述一下
60+
- JVM由哪些模块组成
61+
- 框架里打破双亲委派机制的SPI大概怎么实现的
62+
- 那说说双亲委派
63+
- 垃圾回收主要回收哪些区域
64+
- 怎么识别哪些是垃圾
65+
- 哪些是根节点
66+
- 什么时候会出现Full GC
67+
- 不同垃圾收集器的区别
68+
- TCP为什么要握三次手,为什么要挥四次手,大概什么流程
69+
- 实现环形队列(数组,增加和删除功能)
70+
- 反转链表(迭代)
7171

7272
## 面经4
73-
专业是偏向硬件吗
74-
对百度了解多少
75-
有什么兴趣爱好
76-
经常打球吗
77-
喜欢听什么音乐
78-
经常听音乐吗,什么时候开始喜欢听音乐的
79-
你说两个具体的歌名我听听
80-
平时是怎样的一个人,有什么特点
81-
有做过什么有成就感的事吗
82-
后面选择百度的概率有多少
83-
想过自己5年后、10年后是怎样的吗
73+
- 专业是偏向硬件吗
74+
- 对百度了解多少
75+
- 有什么兴趣爱好
76+
- 经常打球吗
77+
- 喜欢听什么音乐
78+
- 经常听音乐吗,什么时候开始喜欢听音乐的
79+
- 你说两个具体的歌名我听听
80+
- 平时是怎样的一个人,有什么特点
81+
- 有做过什么有成就感的事吗
82+
- 后面选择百度的概率有多少
83+
- 想过自己5年后、10年后是怎样的吗
8484

8585
## 面经5
8686

87-
1.面试官介绍自己,然后自我介绍
88-
2.java中的线程池有哪些?为什么使用线程池?你在哪里使用过或是见过?
89-
3.Mysql底层是怎么实现的?从内存布局,磁盘布局说起?
90-
4.Mysql有哪些索引?B树和B+树的区别,分别解决了什么问题?
91-
5.try catch finally机制讲解一下?
92-
6.为什么要使用SpringBoot做开发?与传统的开发有什么不一样的?
93-
7.什么是微服务?微服务是如何实现服务的注册与发现的?
94-
8.java中的集合分类有哪些?知道Queue吗?她下面有哪些实现类?重点说说HashMap?
95-
9.在集合中哪些集合类是线程安全的?
96-
10.什么是数字签名,作用是什么?使用的是什么算法?
97-
11.常见的网络攻击有哪些?
98-
12.在表单提交的时候,容易发起什么样的攻击?
99-
13.在进行服务调用的时候如何进行身份验证,如何防止网络攻击?
100-
14.你见过哪些安全框架?具体怎么使用的?(shiro)
101-
15.两道算法题:1)普通的二分查找,问了其中的一些细节,二分查找存在的问题? 2)判断S1中是不是有S2的排列,找到返回true,否则返回false
102-
16.Cookie和session 的使用场景,他们之间的关系?
103-
17.String,StringBuilder,StringBuffer的区别,String的两种初始化的区别?
87+
1. 面试官介绍自己,然后自我介绍
88+
2. java中的线程池有哪些?为什么使用线程池?你在哪里使用过或是见过?
89+
3. Mysql底层是怎么实现的?从内存布局,磁盘布局说起?
90+
4. Mysql有哪些索引?B树和B+树的区别,分别解决了什么问题?
91+
5. try catch finally机制讲解一下?
92+
6. 为什么要使用SpringBoot做开发?与传统的开发有什么不一样的?
93+
7. 什么是微服务?微服务是如何实现服务的注册与发现的?
94+
8. java中的集合分类有哪些?知道Queue吗?她下面有哪些实现类?重点说说HashMap?
95+
9. 在集合中哪些集合类是线程安全的?
96+
10. 什么是数字签名,作用是什么?使用的是什么算法?
97+
11. 常见的网络攻击有哪些?
98+
12. 在表单提交的时候,容易发起什么样的攻击?
99+
13. 在进行服务调用的时候如何进行身份验证,如何防止网络攻击?
100+
14. 你见过哪些安全框架?具体怎么使用的?(shiro)
101+
15. 两道算法题:1)普通的二分查找,问了其中的一些细节,二分查找存在的问题? 2)判断S1中是不是有S2的排列,找到返回true,否则返回false
102+
16. Cookie和session 的使用场景,他们之间的关系?
103+
17. String,StringBuilder,StringBuffer的区别,String的两种初始化的区别?
104+
105+
104106

105107
**最后给大家分享一份精心整理的大厂高频面试题PDF,需要的小伙伴可以自行下载:**
106108

docs/framework/springboot.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,18 @@ head:
2121
- 可以快速创建独立运行的spring项目,集成主流框架
2222
- 准生产环境的运行应用监控
2323

24+
## Javaweb、spring、springmvc和springboot有什么区别,都是做什么用的?
25+
26+
JavaWeb是 Java 语言的 Web 开发技术,主要用于开发 Web 应用程序,包括基于浏览器的客户端和基于服务器的 Web 服务器。
27+
28+
Spring是一个轻量级的开源开发框架,主要用于管理 Java 应用程序中的组件和对象,并提供各种服务,如事务管理、安全控制、面向切面编程和远程访问等。它是一个综合性框架,可应用于所有类型的 Java 应用程序。
29+
30+
SpringMVC是 Spring 框架中的一个模块,用于开发 Web 应用程序并实现 MVC(模型-视图-控制器)设计模式,它将请求和响应分离,从而使得应用程序更加模块化、可扩展和易于维护。
31+
32+
Spring Boot是基于 Spring 框架开发的用于开发 Web 应用程序的框架,它帮助开发人员快速搭建和配置一个独立的、可执行的、基于 Spring 的应用程序,从而减少了繁琐和重复的配置工作。
33+
34+
综上所述,JavaWeb是基于 Java 语言的 Web 开发技术,而 Spring 是一个综合性的开发框架,SpringMVC用于开发 Web 应用程序实现 MVC 设计模式,而 Spring Boot 是基于 Spring 的 Web 应用程序开发框架。
35+
2436
## SpringBoot 中的 starter 到底是什么 ?
2537

2638
starter提供了一个自动化配置类,一般命名为 XXXAutoConfiguration ,在这个配置类中通过条件注解来决定一个配置是否生效(条件注解就是 Spring 中原本就有的),然后它还会提供一系列的默认配置,也允许开发者根据实际情况自定义相关配置,然后通过类型安全的属性注入将这些配置属性注入进来,新注入的属性会代替掉默认属性。正因为如此,很多第三方框架,我们只需要引入依赖就可以直接使用了。

docs/framework/springcloud-interview.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,4 +257,16 @@ Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代
257257

258258
使用了一个RouteLocatorBuilder的bean去创建路由,除了创建路由RouteLocatorBuilder可以让你添加各种predicates和filters,predicates断言的意思,顾名思义就是根据具体的请求的规则,由具体的route去处理,filters是各种过滤器,用来对请求做各种判断和修改。
259259

260+
## Spring Cloud各个微服务之间为什么要用http交互?难道不慢吗?
261+
262+
Spring Cloud是一个为分布式微服务架构构建应用程序的开发工具箱,是Spring Boot的扩展,通过各种微服务组件的集成,极大地简化了微服务应用程序的构建和开发。在分布式系统中,各个微服务之间的通信是非常重要的,而HTTP作为通信协议具有普遍性和可扩展性,是Spring Cloud微服务架构中主流的通信方式。
263+
264+
尽管使用HTTP作为微服务之间的通信协议存在一定的网络开销,但是这种不可避免的网络开销远低于我们所能得到的好处。使用HTTP通信可以实现松耦合和异步通信,微服务之间可以彼此独立地进行开发和测试,单个微服务的故障不会影响整个系统的运行,也可以支持各种不同的技术栈之间的互操作性。
265+
266+
另外,使用HTTP作为通信协议还具有优秀的可扩展性。HTTP协议定义了不同的请求方法(例如 GET、POST、DELETE 等),不同请求方法的扩展格式也很灵活,可以用来传递各种类型的数据和格式,同时HTTP协议支持缓存,减少重复性的数据传输和带宽开销。
267+
268+
当然,为了提高微服务之间的通信效率,我们也可以通过一些优化手段来减少HTTP协议的网络开销。例如,使用数据压缩和缓存技术来压缩和缓存请求和响应,减少网络数据传输量和响应时间;使用负载均衡技术来合理地分配请求和响应,避免单个微服务出现性能瓶颈;使用高速缓存技术来缓存请求和响应,避免重复的请求和响应等等。
269+
270+
因此,Spring Cloud各个微服务之间使用HTTP交互是一个比较成熟的选择。虽然它可能存在一些网络开销,但是在实际应用中,这种开销是可以优化和控制的,甚至可以提高系统的可扩展性和可靠性。
271+
260272
> 参考:http://1pgqu.cn/M0NZo

docs/learning-resources/java-learn-guide.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,13 @@ http://mp.weixin.qq.com/s?__biz=Mzg2OTY1NzY0MQ==&mid=2247485445&idx=1&sn=1c6e224
9494
- 《head first java》
9595
- 《JAVA核心技术卷》
9696

97-
head first系列的书籍讲解比较有趣,比较好理解。《JAVA核心技术卷》难度相对适中,内容也比较全面,部分章节(如Swing)可以跳过。
97+
这本书我看了两遍,是一本非常棒的书。不得不说,head first系列的书籍质量是真的高,清晰的条理,生动的图示,偶尔来点老外的幽默,阅读体验非常舒畅。
98+
99+
![](http://img.topjavaer.cn/img/202305172229964.png)
100+
101+
《JAVA核心技术卷》难度相对适中,内容也比较全面,部分章节(如Swing)可以跳过。
102+
103+
![](http://img.topjavaer.cn/img/202305172238052.png)
98104

99105
> 这些书籍,我已经整理了电子版,放到github上了,总共**200多本经典的计算机书籍**,包括C语言、C++、Java、Python、前端、数据库、操作系统、计算机网络、数据结构和算法、机器学习、编程人生等,可以star一下,下次找书直接在上面搜索,仓库持续更新中~(花了一个多月的时间整理的,希望对大家有帮助,欢迎star~
100106
>
@@ -273,6 +279,12 @@ https://www.bilibili.com/video/BV18E411x7eT
273279

274280
并发编程的相关内容可以看看《JAVA并发编程实战》这本书。
275281

282+
豆瓣评分9.0,本书深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册。书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则等。
283+
284+
![](http://img.topjavaer.cn/img/202305172256703.png)
285+
286+
本书关于并发编程的细节介绍得非常详细,看得出有很多实践功底,而不是一个理论派,建议每一个学并发的同学看看。
287+
276288
视频推荐狂神说Java,很不错的视频:
277289

278290
https://www.bilibili.com/video/BV1B7411L7tE
@@ -321,6 +333,10 @@ https://www.bilibili.com/video/BV1L4411y7mn
321333

322334
JVM也是面试经常会问的内容。Java开发者不用自己进行内存管理、垃圾回收,JVM帮我们做了,但是还是有必要了解下JVM的工作原理,这样在出现oom等问题的时候,才有思路去排查和解决问题。书籍推荐周老师的《深入理解Java虚拟机》。
323335

336+
关于Java虚拟机的书很少,这本书算是我心目中写的最好的关于JVM的书籍了。这本书不光在理论方面具有相当深度,在实操方面也极具实用性,特别是书的第二部分,2--5章全部是讲GC的。真正做到了:理论与实践相结合。叙述方面:深入浅出,行文流畅,言辞优美,读起来非常舒服。
337+
338+
![](http://img.topjavaer.cn/img/202305172253765.png)
339+
324340
视频推荐尚硅谷宋红康的全套课程,全套课程分为三个篇章:《内存与垃圾回收篇》、《字节码与类的加载篇》和《性能监控与调优篇》。
325341

326342
尚硅谷JVM全套教程:
@@ -490,7 +506,11 @@ LintCode的UI、tagging、filter更加灵活,更有优点,大家选择其中
490506
- 《MySQL必知必会》
491507
- 《高性能mysql》
492508

493-
《MySQL必知必会》主要是Mysql的基础语法,很好理解。后面有了基础再看《高性能mysql》,这本书主要讲解索引、SQL优化、高级特性等,很多Mysql相关面试题出自《高性能MySQL》这本书,值得一看。
509+
《MySQL必知必会》主要是Mysql的基础语法,很好理解。后面有了基础再看《高性能mysql》,这本书主要讲解索引、SQL优化、高级特性等。
510+
511+
![](http://img.topjavaer.cn/img/202305172259165.png)
512+
513+
非常好的一本书,五星力荐,即使你不是DBA也值得一读。
494514

495515
**视频推荐**
496516

docs/other/site-diary.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ sidebar: heading
2525

2626
- 2022.11.20,新增[系统设计-短链系统](/advance/system-design/4-short-url.html)
2727

28-
- 2022.11.20,新增[校招分享-双非本,非科班的自我救赎之路](/campus-recruit/share/1-23-backend.html)[校招分享-秋招还没offer,该怎么办](/campus-recruit/share/2-no-offer.html)
29-
3028
- 2022.11.14,[修复Java集合uml图错误](https://topjavaer.cn/java/java-collection.html#%E5%B8%B8%E8%A7%81%E7%9A%84%E9%9B%86%E5%90%88%E6%9C%89%E5%93%AA%E4%BA%9B)
3129

3230
- 2022.11.12,[120道LeetCode题解(高频)](/leetcode/README.md),已整理**58**

0 commit comments

Comments
 (0)