字节跳动-架构-实习-1、2、HR面、OC
之前看了挺多面经,了解到不少,也学到不少,回馈一下社区。
部门主要是c++,所以问的都是基础,语言层面没怎么问。
整体流程
- 11.09投简历
- 11.11约面试
- 11.17一面
- 11.22二面
- 12.1HR面,面完就让填入职信息
总共历时了半个多月,二面和HR面中间间隔了10天之久,一度怀疑GG了。庆幸结果是好的:)
一面
2021.11.17 14:00 ~ 15:30
很硬核,基础问题答得还可以,但是项目没说好,算法没写好,让写堆排序,后面换了一个写LRU,实现get,put,delete的时间复杂度都是O(1),用链表加Map,但是因为首尾结点没处理好,面试官叫停了,逻辑是对的
- 自我介绍
- 项目
- 三层架构是怎样一个三层架构
- Spring的核心,分别说一说
- Spring的默认代理方式,说不知道
- Restful怎么理解
- GraphQL为什么用
- 你们http默认是使用那个版本?
- http几个版本的区别
- http、https有什么区别
- http2.0引入多路复用仅仅是为了解决队头阻塞问题吗?还有没有别的考量
- http2.0的多路复用,是全双工还是半双工?难道暗示我1.1是半双工?2.0全双工
- 解释一下全双工,半双工
- 知道长连接吧,讲一讲长连接
- MySQL的架构
- 有哪些存储引擎
- 为什么存储引擎要设计成可插拔式
- 讲一讲索引
- 为什么主键推荐自增id?答了直接插到链表尾部,还有别的吗?原来是想让我答页分裂。
- 事务怎么表现的?
- 热点数据怎么来理解和定义
- 讲一讲缓存穿透?怎么解决穿透,然后面试官引导我说出了位图
- Redis三种架构,分别讲一讲
- 一致性Hash了解吗?
- 为什么redis集群不用一致性hash呢?在面试官的引导下,说了槽的随机分布的问题,后面了解到还能解决节点故障导致集群down掉的问题
- ConcurrentHashMap安全吗?八股文哈哈哈,然后面试官一深入,什么时候加锁,加在什么地方?懵了。
- Java有哪些锁?
- 讲一讲synchronized底层实现
- TCP的可靠性和拥塞控制的实现原理,讲得有点乱
- 让写个堆排序,先说说时间复杂度,为什么是nlogn,让分析堆排序的put过程,说不出来,就换了一个题
- 实现一个LRU,由于没有考虑到可以直接设置两个固定的首尾结点,所以中间有些地方没有写好
二面
2021.11.22 14:00 ~ 15:00
场面一度尴尬,以为凉凉,面试官倒是很有趣,问的问题也很有趣,因为他压根没问我几个问题,可喜可贺的是面完HR就打电话了
- 自我介绍
- 用了MySQL和Redis,为什么要这样做呢?
- Redis为什么快,说了三点。面试官问基于内存,那MySQL不是基于内存的吗?我说MySQL其实也在操作内存,balabala,他说我懂你意思。他还说MySQL也可以纯运行在内存中。我说这一点我不了解。原来是Memory引擎
- 你希望在公司了解什么学到什么
- 为啥不读研呢?
- HashMap怎么尽可能提高吞吐,说实话当时我是懵逼的,面试官层层提示,层层深入,我还是像个呆子一样,后面就没问了。我感觉我快凉了
- 你为什么要用RestFul呢,有什么好处吗?也是干懵了,我说简洁,性能层面我不清楚有没有什么优势(心理活动是:因为学了这个,所以就用这个)
- 讲一个你印象比较深的bug,或者难点
- 上次面试官的遗留问题,堆排序,讲一讲
- 堆排序建堆的时间复杂度,答nlogn,面试官说有一种方法可以实现O(n),你可以下去了解一下,以后拿出去装逼
- 反问
HR面
2021.12.1 14:00 ~ 14:10
- 自我介绍
- 如果能通过的话什么时候能入职,
- 能实习多久
- 下学期没课了吗?
- 你是可以来北京的对吧
- 一周能来几天
- 后面是都没课了吗?
- 你在官网投这个岗位,为什么投这个部门呢?
- 以后的工作方向具体有考虑做什么方向
- 你的实习预期是什么,希望收获什么?
- 后续是打算直接工作是把?我们这边是有转正机会的,后续直接参加转正面试就好了
- 你评价一下你自己,有什么优点
- 除了字节还有投别的公司吗?
- 你自己怎么考虑这两边吗?
- 反问
总结
字节的效率真的高,反馈很快,二面和HR面的插曲可能是因为面试官没时间。
缺点很突出:算法很拉,确实很拉,LK几乎0,剑指那本书看完了。
反思了一下,能顺利通过的原因可能在于一些基础的问题回答得还行。这就得归功于下面几本“神书”,看完的感觉真的挺好,推荐给大家。