前言
前段时间,我一哥们去面试字节跳动,我听他说过程艰难,但还是费了九牛二虎之力拿下了。
字节跳动的面试挺有挑战性的感觉,不过还是挺有趣的,感觉啥技术都问。今天就跟大家说说字节跳动的面经。
好了,我们来进入主题吧。
一面
自我介绍
聊项目
Redis了解多少,熟悉哪一些数据结构? zset底层怎么实现的?
Redis 集群方案应该怎么做?都有哪些方案?
如果是IO操作为主怎么确定?
说说 Redis 哈希槽的概念?
zookeeper 是如何保证事务的顺序一致性的?
分布式集群中为什么会有 Master主节点?
为什么要用 Redis 而不用 map/guava 做缓存?
Tomcat工作模式是什么?
二面
自我介绍
问项目
谈谈Mysql,说一下索引结构,为什么要使用B+树?
Volatile 关键字有什么用?怎么理解可见性,一般什么场景去用可见性?
NIO 与 BIO 有什么区别?
说一说Netty 原理。
Dubbo的RpcContext是怎么传递的?主线程的ThreadLocal怎么传递到线程池?
什么是索引覆盖?
SpringMvc 里面拦截器是怎么写的
SpringMVC 怎么样设定重定向和转发的?
如果目标类没有实现接口,那么 Spring AOP 会选择什么目标类?
说说业务中,Netty 的使用场景
Dubbo 连接注册中心和直连的区别
GC 的三种收集方法是什么?原理与特点?分别用在什么地方?如果让你优化收集方法,有什么思路?
三面
Kafka 内部原理?工作流程?
怎么实现 Exactly-Once?
CAP 是指什么?Mysql 满足CAP中哪些?
什么是一致性Hash?自己实现一致性 Hash,会用什么数据结构?
单例对于单例,你知道哪些实现方法?
快排算法是否稳定?什么是稳定性?
MySQL 中使用什么存储引擎?
数据库的三范式?
你有什么想问我的?(部门定位?岗位职责?加班情况?薪酬福利介绍?)
总结
我哥们说他差不多就是这么个过程吧,其实不管是面试官也好,去面试的朋友也好,面试官没有大家想得那么恐怖,足够的底气和自信是需要锻炼的,当然也要有一定的实力哦,才拿得住才能端稳“饭碗”。
众所周知,面试前的“练手”还是很重要的,所有开始面试之前一定要准备好哦,不然也是耽搁面试官和自己的时间。
福利
这里给大家送一个小福利,平时整理了一些常见的面试题目以及技术问题。一些大厂的面试真题(都整理成文档,小部分截图)。
希望能够帮助到大家。
多刷题,多刷题,后面硬啃了好长一段时间才补回来,祝大家offer拿到手软哦~