字节跳动飞书企业应用后端开发一、二、三面面经
2022届校招、春招
一面 2022年3月15日
1、自我介绍
2、实习项目
3、自己做的社区网站项目
4、Object类有哪些方法?详细说明
5、聊聊垃圾回收,实习的时候团队用的是哪个垃圾收集器?
6、进程和线程和区别?
7、TCP为什么可靠?三次握手的过程?为什么是三次
8、mysql 事务的隔离级别?再说说常用的存储引擎
9、说说Java多态
10、http和https的区别?
11、了解分布式系统吗?说说你的理解
12、mysql索引底层实现,索引失效的情况
13、问了一些linux命令,如何查看进程、杀死进程、su命令,还有一些其他的忘记了,都是些比较基础的
14、mysql怎么创建索引
15、你项目的登录功能,输入用户名和密码,用户提交登录请求到服务端,说说处理请求的详细过程,包括网络层面的。(tcp建立连接、断开连接的过程+业务处理请求的过程)
算法题:输入一个字符串,至多删除一个字符,该字符串是否是回文串,输出true或者false。比如bab,输出true;babb,输出true
二面 2022年3月16日
1、自我介绍
2、实习项目
3、Redis内存淘汰策略?Redis支持事务吗?与mysql的事务有什么不同
4、sql优化,说说explain需要关注哪些参数?
5、mybatis sql语句里写 #和?的区别?
6、SQL注入,mybaits怎么防止SQL注入?
7、说一下垃圾回收?如果GC突然很慢怎么排查,比如原来GC完成只需要1秒,现在要5秒?了解哪些gc相关的工具,比如jstack之类的
8、mysql怎么支持事务的?
9、说说binlog和redolog,redolog两阶段提交的过程?
10、redis怎么实现持久化?持久化能保证不丢失数据吗?
11、Java线程有哪些状态?
12、并发和并行的区别?
13、进程调度算法
算法题:https://leetcode-cn.com/problems/spiral-matrix/
三面 2022年3月22日
1、实习项目,聊了挺久的 2、分布式事务
3、synchronized关键字的底层实现
4、为什么需要可重入锁?
5、Redis怎么实现分布式锁,具体的命令是什么?如果是分布式集群会有什么问题?这里答RedLock算法
6、实习项目为什么用Spring Boot?有什么好处?
7、Spring Boot实现定时任务有哪些方式?
8、说说IO多路复用,做过网络编程吗?tcp三次握手之前,需要做什么?大概就是启动进程、监听端口之类的
算法题:输入一个数组,找出A1 A2两个数,使得 A1-A2尽可能大,输出A1-A2的结果。例如 输入[0,2,3,8],输出 -1,即2-3。
做完后面试官一直让优化,最后问我能不能用动态规划写这题?我说不会,让我说说对动态规划的理解。
就记得这些了,面经上问题的顺序并不是面试时面试官提问的顺序。