一面(电话,48min):
- 自我介绍
- 怼项目,怼了30分钟(基本就是问项目是如何实现的,没有问Netty)
- 为什么使用NIO而不是BIO,NIO快在哪里?
- MySQL的索引为什么使用B+树,而不使用B树或者红黑树?
- 线程池构造参数有哪些。
- 线程池的线程数量如何选择
- 线程池在调用
execute
方法提交任务后,其内部的处理逻辑是怎样的?线程数量是如何变化的? - 使用Spring框架遇到的坑,我简单说了循环依赖、
@Transactional
注解的坑。 - Spring Bean的初始化过程
二面(视频面,大概50分钟,没手撕代码有点意外)
- 为什么使用Netty,Netty解决了什么问题?
- Netty的零拷贝是如何体现的。
- Netty的线程模型。Boss线程组和Worker线程组的作用。
- Netty的Handler执行链使用了什么设计模式?
- Netty提供了哪些解码器用于实现“分包”?
- 在对
SocketChannel
进行读写时,为什么使用直接内存,用堆内存有什么坏处? - 项目的设计思路,用到了哪些设计模式,是如何体现的。
- 为什么要使用多线程?
- 线程池的构造参数
- 线程池的线程数量是如何变化的,线程池中的线程如何销毁?
- 实习期间做了什么?说一下你负责的业务。
- 在刚入职时,你是如何梳理业务流程的?
- 说一下你的代码重构思路和流程?中间遇到了哪些困难。
- 平时怎么和leader、同事相处的,怎么和其他部门的同事沟通协调的?
- 平时是如何学习的?
- 什么时候能来实习?能实习多久?
最后我问了面试官他们部门的业务,跟我讲了5分钟吧。
HR面面经
- 讲一下实习经历。
- 实习之后你收获到了什么,举例子
- 实习期间遇到的问题是如何解决的,举例子
- 讲一下你的个人优势
- 为什么选择从事计算机行业
- 讲一下你的成长经历
- 有其它offer吗?
- 在校期间做了什么事情让你很有成就感?
- 平时是如何学习的
3月8日投递的简历,12日完成笔试,19日完成两轮面试,26号完成HR面试。
4月5日收到正式Offer邮件