字节三面过了!
时间:2021-08-18 10:19:15
手机看文章
扫描二维码
随时随地手机看文章
[导读]大家好,我是小林。昨晚收到个读者的喜事,在秋招中,过了字节的三面,已经稳的了。我简单跟他聊了下,他说他在备战的时候,他对于操作系统和计算机网络的学习,都深入的非常底层,不至于表面的理论知识,所以他在面试的时候,就会让面试官有很深刻的影响,屡试不爽。三面字节的面经也整理好了,这次就...
大家好,我是小林。昨晚收到个读者的喜事,在秋招中,过了字节的三面,已经稳的了。我简单跟他聊了下,他说他在备战的时候,他对于操作系统和计算机网络的学习,都深入的非常底层,不至于表面的理论知识,所以他在面试的时候,就会让面试官有很深刻的影响,屡试不爽。三面字节的面经也整理好了,这次就先分享下面经,等过几天再分享学习路线和心得,大家期待下就好啦。
一面 1h5min
- 项目?缓存一致?为什么更新?本地是广播消费?消费失败怎么办(重试,还不行就数据库兜底重发,然后人工干预)?缓存预热?缓存数据有多少?能存多少?
- 优化:拆分服务后本地缓存分批存?不同服务对应存不同本地缓存?消费失败可以不用兜底?
- mq的作用?幂等和防止重复?消息丢失怎么解决?
- get、put、post区别?哪个是幂等的? 幂等详解?
- http不同版本区别?要说到QUIC的握手时机不同
- QUCI发送过程?(很底层,包括重复发送那一块)
- 内存淘汰策略?缓存数据过热?数据结构?
- 隔离级别怎么保证可重复读?mvcc和间隙锁
- 索引区别?innodb解决幻读?
- hashmap线程不安全在哪里?1.8hash为什么高效?
- 锁升级?很细?可重入锁源码(status?)?公平锁非公平锁源码区别?对象头结构详细?.
- synchronized 和lock区别?synchronized 怎么加锁的底层?monitor对象?两个队列?非公平竞争?
- volatile?MESI?为什么MESI还要volatile?(语言层面volatile,lock前缀?系统层面MESI,JMM模型映射,内存屏障,总线风暴?提一下MESI优化的那两个队列所有要用内存屏障进一步保证)
- 算法说思路:整数数据取中位数(我说数据量不大就排序根据奇偶取中间?优化可以排序到中间就判断,不用全排序?骚操作可以放redis里?)没有刁难我
二面 1h
- 项目陈述?
- 为什么canal?canal解耦,懒加载,自带的顺序发送?为什么保证更新顺序这里不可以用mq消息版本?
- canal是单独节点部署的么?
- 可不可以不用mq?各个本地节点都载入canal?k8s sidecar挂载?
- mq可靠性?从发送到持久化到广播消费(定时任务(第三方控制速率) 查库 ,优化 延迟消息 这里可以argue)
- 本地缓存优化?缓存预热?为什么更新?最终一致?
- 重复消费那里?顺便说一嘴弱校验
- 算法:一个数组和一个K,数组A{1,1,1,0,0,1,1,0},K=2,能让最多K个0变为1,问连续1最大是多少?滑动窗口
- 多嘴说了OS伪共享,秀了一下os,说Java的并发框架有用字节填充来实现Cacheline填充总结,项目这里漏说了分布式锁,但是这些已经说了四十分钟了,最后就做题了
三面1h15min
- 有没有别的offer?
- 成绩怎么样?为什么不考研?
- 说下项目?
- 工作流怎么设计?原来是怎么样的?提供外部系统是怎样的?优化业务嵌入数据是咋样的?
- 缓存存什么?数据结构是怎么样的?缓存大小,大小优化?怎么高可用?
- 缓存预热是咋样的?spring启动怎么保证的?数据启动前不会被写入?
- 分布式锁?原子性,过期时间,单点,红锁,npc
- 进程间通信?源码分析?管道实现?
- mysql怎么回滚的?
- redo,undo,bufferpool,宕机时候的两阶段判断
- 数据包发送,mac,arp,子网,路由转发,ringbuffer,数据拷贝
- 线程交替输出
- 多线程每秒1000次访问,超过则false,没超过返回true
- 反问:
- canal k8s部署sidecar的看法 说综合考虑人力和业务,没有最好的方案