【字节跳动】Java岗-商业变现后端实习
一面(04-02)40min
1、自我介绍
2、算法题]:给定一个排列,求它的下一个排列,[1,2,3] -> [1,3,2] ;[3,2,1]->[1,2,3]
3、说一下netty的主要组件,有什么作用?
4、直接用nio有什么问题吗?selector的源码看过吗?说一下?
5、epoll说一下?平常写代码有直接用到epoll吗?
6、浏览器输入一个url到页面渲染的整个过程?越详细越好?
7、假设你dns获取到的是负载均衡的服务器ip,那么还会通过这个ip映射到应用服务器ip,如果这个过程中出现问题怎么办?
8、hashmap底层说一下?为什么每次扩容都是2倍?和hashtable的区别?hashtable底层数据结构?
9、jvm内存分布?如果现在有一个静态类,它的数据会存在哪?
10、CMS知道吗?频繁full gc怎么排查?
11、finally中的语句总会执行吗?什么情况下不会?
12、redis的几种数据结构都说一下?跳表说一下?
13、mysql索引知道哪些?然后写了几个sql,问能不能走索引?
14、3层的b+树大概能存多少数据?怎么计算的?
15、mysql的锁有哪些?平常有实际用过吗?怎么用的?
16、mysql主从复制知道吗?mysql分片知道吗?有实际应用吗?具体说一下?
17、我这边没什么问题了,你等下,马上会有另外一个面试官跟你沟通
二面(04-02)50min
一面完几分钟后,二面面试官就进来了
1、算法题:合并k个链表
2、你写的这个还能再优化吗?优先队列怎么实现的?说一下堆的插入和删除过程?
3、项目介绍
4、你这个项目中,数据库和缓存的读写策略?怎么保证一致性?
5、redis结点宕机了怎么办?某个哨兵节点宕机了怎么办?哨兵的数量对新主节点的选取有什么影响吗?
6、redis的持久化说一下?主从复制的过程说一下?
7、你的项目用到了netty的什么特性?
8、项目有碰到粘包和拆包的问题吗?怎么解决的?
9、群聊怎么实现的?消息怎么存储的?消息怎么推送的?如果这个群特别大,怎么去优化?
10、群聊和视频直播有什么不同的地方吗?
11、如果让你设计一个直播系统,你会怎么设计?弹幕怎么存储?
12、消息队列中积累大量消息没有被消费,你觉得是什么问题?你会怎么解决?
反问:
部门业务和技术栈
二面完之后过了几分钟,hr电话跟我说面试通过了,约了三面时间,并且加了一下微信
三面(04-08)45min
1、自我介绍
2、算法题:给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。
3、SQL题:
成绩表 SC(S#,C#,score)
S# 学生编号,
C# 课程编号
score 分数,
找出语文成绩及格,平均成绩不及格的学生编号,语文成绩,平均成绩。
4、介绍一下你做的项目,然后对其中一个项目进行扩展,从单机扩到分布式,会出现哪些问题,你会怎么解决?(10min)
5、CPU的调度方式
6、内存管理
7、linux命令知道哪些?
8、DNS的过程知道吗?ping的过程知道吗?
9、微服务了解吗?说一下你用过哪些组件?怎么用的?
10、消息队列了解吗?怎么保证消息能消费到且只被消费一次?
11、平常怎么学习的?看过哪些书?说一本印象最深刻的?有看过非技术的书吗?
12、我这边没问题了,你有什么想问我的?
反问:
对这次面试的评价和对我的建议
hr面(04-08)20min
1、自我介绍
2、前面的面试有做过复盘吗?能具体说一说吗?
3、看你参加的比赛挺多的,也做过很多项目,那你是怎么去利用好自己的时间的呢?
4、你现阶段的个人规划可以说一下吗?
5、你觉得你大学到现在让你改变最大的一件事是什么,可以分享一下吗?
6、除了字节,还有其他公司的offer吗?如果字节这边给你发offer,你会怎么选择呢?
7、什么时候能来实习?能实习多久?