字节抖音(成都)提前批后端开发凉经
一面
- Http 的执行过程?
- TCP三次握手过程
- TCP中第一次Seq是如何产生的?
- linux,shell命令,编写计算nginx日志中访问最多的100个ip
- 如何编程实现?排序的时间复杂度?如何优化?
- 进程、线程、协程的区别
- python中多进程和多线程的区别
- 做题:二叉树右视图,先探讨了一下方案和时间复杂度、空间复杂度,然后要求把空间复杂度降到O(logN),开始写代码,写得很磕磕绊绊
二面
- 先聊了会人生,为什么当时拒了字节的实习,为什么选择开发岗...
- 说了下在蚂蚁金服的短暂的实习期间干的事情,一个分布式的转账demo,开始聊分布式
- 二阶段提交协议的实现方法探讨(主要讲了蚂蚁内部某分布式事务框架的实现思想)
- 二阶段提交协议的缺点,以及三阶段提交协议如何弥补这些缺点
- 其他的分布式框架,聊了下RAFT,主要讲了RAFT的leader选举策略
- RAFT 如何克服数据分区(Split-brain)的问题
- RAFT 实现了CAP中的哪两个原则
- 开始聊数据库,事务的隔离级别有哪几种
- 可重复读的实现方式,是否了解MVCC(完全没听过)
- MySQL(Innodb)锁的类型及作用(没答全)
- 乐观锁的实现方式(只说了Java上的CAS方式,完全不知MVCC)
- 间隙锁?
- 索引为什么选B+树而不是B树
- B+树的缺点
- 开始聊操作系统,虚拟内存和物理内存的区别
- 页式内存管理系统中的虚拟内存到物理内存的加载方法以及页淘汰策略
- 在程序中取地址得到的是物理地址还是虚拟地址
- 进程间通信方式
- 信号和信号量的区别
- 智力题:圆形桌子,A和B下棋,棋子是圆的,A先走,每人轮流下,一次只能下一颗(不能不下),如何保证A一定赢?
- 算法题:顺时针打印矩阵
总结
算法题刷得不够熟练,需要再练习。做题的时候遇见不会的明显紧张了,一面结束后没多久就反应过来那个题其实蛮简单的,但是我最后还是写错了。。。
二面结束后问了下面试官能不能给我的秋招如何准备一点建议,他说写在简历上的东西一定要熟悉,MySQL那一块我蛮多的问题没有答上来(我简历上确实写了熟悉Redis/Mysql...)
再加油吧...
#字节跳动校招提前批##字节跳动##Java工程师##校招##面经#