快手Java实习一二三四面面经 效率工程(已OC)
一面:(40min)
1.基础:
- 忘了,没录音,大概记得问了类的加载过程
- JVM的锁
- HashMap的底层
- bulabulabula
2.算法题
- 手写快排
二面:(60min)
1.基础
- 说一下你对volatile关键字的理解(答JMM内存模型.Happens-Before规则)
- 说一下你对可见性的理解
- 说一下你对HashMap的理解
- HashMap中初始化容量加入给定参数是怎么操作的?
- HashMap中的死锁是怎么产生的
2.算法题
- 求带环链表的入口节点,且证明
- 非递归前序遍历二叉树
3.项目
说一下你购物车模块怎么实现的?
说一下Redis持久化
三面:(40min)
1.基础
- 操作系统的内存是由什么决定的?
- 网络ip分为五大类,哪五大?
- 网络七层模型
- HTTP请求报文,说一下有哪些method
- HTTP请求发向后台会有乱码现象,什么情况会出现?
- switch关键字可以接受哪些参数?
- 说一下数据库三大范式
2.算法:
- 最小覆盖子串(没敲代码,只说出了实现方式)
四面(三面挂了被捞了 20min)
1.项目
- 项目中线程池用在哪些方面
- 线程池的参数?
- 线程池设置的具体大小
- 线程安全的理解?
- volatile用过吗?知道些什么?
- 业务量大怎么解决
- 怎么设置线程池参数大小?
2.redis
- 项目用redis用在哪?
3.rabbitmq
- rabbitmq用在哪里了
- 为什么要用rabbitmq?
- 定时任务和消息的区别
4.算法
- 1000个数取5个最大值(口述)