总结
大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。
麻烦帮忙转发一下这篇文章+关注我
-
自我介绍
-
怎么打算投递后台岗位的,没有考虑契合自己研究方向的工作
-
有了解过OAuth2.0么,说说你对OAuth2.0的理解
-
蘑菇博客开发过程中,有了解或学习其它的开源框架么
-
蘑菇博客文章发布的流程是怎么样的,是多人博客系统么
-
对其它的一些博客框架有了解么,比如hexo
-
hexo和蘑菇博客相比有什么区别呢?蘑菇博客多了哪些功能和优势
-
看你蘑菇博客用到了RabbitMQ,那谈谈为什么引入RabbitMQ?
-
你还知道其它的一些Linux命令么?
-
cat、tail、vi、vim命令的区别,分别说一说?
-
如果Linux下需要打开或者查看大文件,你会怎么做?
-
下面聊聊Http Code,你知道 3XX 状态码 对应的是什么?
-
再谈谈你知道的其它一些状态码,4XX 和 5XX?
-
下面我们来做个题目吧?语言任意,选择喜欢的(ps:其实是leetCode原题,没有做过类似的,想了几分钟没有思路,哭。。,想问问思路,然后说换一题吧,那就,事后想想还挺简单的,根据第一位排序一下就好了)
给定一个数组,例如 [1,1,2,2,2,3,3,3,3]这样的,里面的数组不一定连续并且有序,假设我输入 2,这个2表示出现次数最高的两个
那么你需要给我返回 2,3
- 那就换个题目吧,看看下面这个题目,找数组出现次数最多的TOP N,回头听室友说,好像又是leetcode原题,泪目,算法能力太弱,没怎么刷题。
给定一个数组,例如 [1,1,2,2,2,3,3,3,3]这样的,里面的数组不一定连续并且有序,假设我输入 2,这个2表示出现次数最高的两个
那么你需要给我返回 2,3
然后我最开始的思路就是,通过hash存储出现的次数,然后key就是数组中出现的值。最后再对hash中的次数进行排序,最后得到top N,因为时间复杂度是O(N^2),问有没有优化思路,能否优化到O(N),想了半天没有想出来,没有充分运用以及构建好的hash表
后面面试官给讲了一下思路。从数组长度向下遍历进行查找
- 反问环节,问了问面试的表现,被告知算法能力比较薄弱,以为就此凉凉。。。然后一面说这边可以让你进入下一环节,这边大概需要等5到10分钟左右
第二面
===
二面考察的是技术深度面试,面试时间大约50分钟左右
-
自我介绍
-
博客已经开源了么,用的什么开源协议,博客的用户多么?
-
看你博客中用到了Solr和ElasticSearch,谈谈它们的原理,以及倒排索引?
-
对于Solr或者ES里面用到的一些中文分词器有了解过么?
-
谈谈那些技术栈,你比较熟悉的是那些,mysql 和redis?
-
聊聊MySQL的底层索引结构,InnoDB里面的B+Tree?
-
B Tree 和 B+ Tree的区别
-
聊聊MySQL索引的发展过程?是一来就是B+Tree的么?从 没有索引、hash、二叉排序树、AVL树、B树、B+树 聊。
-
谈谈MySQL里面的事务,说说什么是事务?
-
MySQL里面有那些事务级别,并且不同的事务级别会出现什么问题?
-
谈谈可重复读和幻读的区别?
-
MySQL中如果使用like进行模糊匹配的时候,是否会使用索引?一定不会用么?(索引这块了解的太少了,二面结束后,回去恶补了一下)
-
谈谈Redis吧,在你项目中的具体使用?
-
如果我需要查看端口号或者进程号,你会使用什么命令?
-
谈谈你做的另外一个项目吧?稍微介绍一下
-
来吧,写个题目试试
链表的两两翻转 # 给定链表: 1->2->3->4->5->6->7 # 返回结果: 2->1->4->3->6->5->7
-
毕业时间是什么时候?现在面试的是实习岗位么?
-
反问环节:追问面试表现?告知 Redis这块掌握的还可以,但是MySQL这块显得不足。问后续的安排。
第三面
===
应该是Leader面,面试时间大概50分钟
-
自我介绍
-
好奇一下,用码云的人应该不多吧,为什么没有用Github?
-
你英文水平怎么样?
-
聊聊开源项目吧?我看这项目已经有800多赞了,你在这开源项目主要做了什么工作?
-
我们找些点来聊聊吧?先从ES和Solr开始,你们这两个都有在用么?
-
SQL的方式实现搜索,你是怎么做的呢?
-
使用like匹配的时候,会不会查询非常慢呢?
create table ‘tb’ (
id int,
name varchar(64),
status int,
createtime timestamp,
PRIMARY KEY (id
)
)
– 创建了三个普通索引
create index index_name on table(‘name’)
create index index_status on table(‘status’)
create index index_createtime on table(‘createtime’)
– 给定SQL语句,判断下面查询会用到几个索引
select * from tb where status = 1 and name = “zhangsan”
-
用链表的方式实现,时间复杂度是O(N),有没有什么方式能够让它是O(1)的时间复杂度呢?
-
OK,思路还可以,那你手写一个LRU算法吧?(双向链表 + Hash?)
-
反问环节:问了下组织架构,以及python和go在项目中的使用。然后问了下面试的表现,答:代码写的不算好吧,LRU写成这样我觉得是不太合适的。(心碎的声音,感觉到凉凉的气息…),结束后以为面试已经结束,后面在准备关页面的时候,面试官说等一下,还有同学和我聊?
HR面
===
花10来分钟做个简单的沟通
-
自我介绍
-
考研的时候为什么选择的是这个学校呢?
-
回顾一下,上大学到现在这段时间内,让自己最有挫败感的事情是什么呢?
-
有哪些方面需要在改进的么?
-
对于以后参加的工作,你主要会看重哪些方面呢?
-
同学这块,大家都有在投递字节这边的岗位么?
-
反问环节:关于面试结果,告知,这边只是做简单的了解,面试结果大约会在一周左右出来,到时候会有邮件或者电话通知。关于面试的结果,需要综合前面的几个面试官进行综合评测,才能决定是否录取。
总结+面试前的准备(供大家参考学习)
==================
由于篇幅原因,有需要的朋友请务必麻烦大家帮小编转发一下,因为这样可以帮助更多有需要的人看见,然后添加小助理vx:mxzFAFAFA即可获取
给大家个建议,面试官如果愿意和你聊组里业务,一定要把握机会好好聊,最好能提出让面试官眼前一亮的问题,直指业务核心。代码谁都会写,基础知识网上都能查到,但是对产品的理解和新的想法不是谁都有的
(1)第一步,面试前整理一个完整知识架构大纲
======================
我将架构体系分为五大模块:并发编程、JVM性能调优、Spring开源框架源码解读、缓存数据库、分布式架构,微服务架构
(2)第二步,通过大纲对面试中的高频技术逐个攻克
========================
1,并发编程(手写笔记:并发编程+并发编程_原理+并发编程_应用+并发编程_模式)
-
并发编程共享模型篇
-
并发编程_模式篇
-
并发编程_应用篇
-
并发编程_原理篇
并发编程共享模型篇
并发编程_模式篇
并发编程_应用篇
并发编程_原理篇
2,性能调优(Java性能调优实战:Java编程性能调优+JVM性能优化+Mysql调优笔记)
- JVM性能优化
JVM性能优化
- JVM性能监测及调优
JVM性能监测及调优
- Mysql调优笔记
3,Spring开源框架源码解读
最后
在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!
Pj0UiEG-1715780902364)]
[外链图片转存中…(img-a8eOFsSa-1715780902364)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!