字节跳动抖音社区安全后端开发一二三面经(三面已凉)
感谢字节跳动给了我面试的机会。面试官很温柔,字节流程也很快,一二面面完不超过10分钟,hr就通知过了,约下一面。三面答得很糟糕,表现不好,凉了
一面(1h):
1. 进程与线程区别
2. 为什么要有线程(没答出来)
3. TCP三次握手
4. ==与equals
5. volatile的作用
6. JVM的指令重排(没答出来)
7. 口述算法思路:连续子数组的最大和(紧张,没答清楚),机器人从左上角走到右下角的路径总和,第K大的数,最大栈,10亿个数找出前100大的数。都问了时间复杂度,个别题问到了空间优化
8. 手撕代码:大数相加
2. 为什么要有线程(没答出来)
3. TCP三次握手
4. ==与equals
5. volatile的作用
6. JVM的指令重排(没答出来)
7. 口述算法思路:连续子数组的最大和(紧张,没答清楚),机器人从左上角走到右下角的路径总和,第K大的数,最大栈,10亿个数找出前100大的数。都问了时间复杂度,个别题问到了空间优化
8. 手撕代码:大数相加
二面(1h):
自我介绍
1. 聚簇索引和非聚簇索引
2. 事务的四个特性ACID
3. 数据库的隔离级别和导致问题,四个级别哪个性能最优,哪个吞吐量最差
4. B树索引为什么用B+树不用B树、B-树?(主要是提升了区间查询性能)
5.计算机网络五层协议分别是哪五层?分别有什么用?路由器在哪一层?
1. 聚簇索引和非聚簇索引
2. 事务的四个特性ACID
3. 数据库的隔离级别和导致问题,四个级别哪个性能最优,哪个吞吐量最差
4. B树索引为什么用B+树不用B树、B-树?(主要是提升了区间查询性能)
5.计算机网络五层协议分别是哪五层?分别有什么用?路由器在哪一层?
6.TCP和UDP的区别, TCP4次挥手,TIME_WAIT为什么要等待2MSL?
7.TCP靠什么实现可靠传输
8. 系统态和用户态的区别,什么情况下从用户态切换到系统态
9.死锁的四个条件,怎么解决死锁
10.逻辑题:A和B各有1/2的胜率,现在规定:A赢2局就获胜,B赢3局才获胜,问A、B各自的胜率为多少?(没答出来)
11.手撕代码:链表重排(思路有,代码出了小bug)
7.TCP靠什么实现可靠传输
8. 系统态和用户态的区别,什么情况下从用户态切换到系统态
9.死锁的四个条件,怎么解决死锁
10.逻辑题:A和B各有1/2的胜率,现在规定:A赢2局就获胜,B赢3局才获胜,问A、B各自的胜率为多少?(没答出来)
11.手撕代码:链表重排(思路有,代码出了小bug)
三面(50min):
自我介绍
项目
两道sql:
公司部门表Dep(id, name)
员工信息表Emp(id, name dep_id);
1.统计部门名称和部门人数, 人数>0的才统计, 例如:
HR 10
研发 20
2.在Dep新增emp_count字段表示该部门的员工人数, 用空间换时间,请问如何初始化;(没写出来)
员工信息表Emp(id, name dep_id);
1.统计部门名称和部门人数, 人数>0的才统计, 例如:
HR 10
研发 20
2.在Dep新增emp_count字段表示该部门的员工人数, 用空间换时间,请问如何初始化;(没写出来)
手撕代码:(没写出来,一点思路都没,问就是菜)
给定执行顺序的依赖关系 1-2,1-4, 4-5, 打印出执行的先后序列;
List<Node> list
Class Node{
prev: Long,
next: Long
}
HashMap和HashTable的区别
HashTable为什么不支持null值存储(没答出来)
ConcurrentHashMap的区别
除了并发效率区别还有什么别的区别(说着说着又回到了并发效率,算没答出来)