搜狐——搜索部门一面
面试官人超好,慢慢引导我,给我反馈,不会的点都会跟我讲。
时长1h26min
算法题:
- 无重复的最长字串
- A 集合包含 B集合,求 B集合元素在A集合的位置 A:[1,2,3,4,5,6] B:[1,2,3,4]
- map集合如果 A 集合有序且非常大,那么使用二分、插入排序优化
八股,逮着简历开问:
JVM
- 内存结构
- 说说内存结构堆里有啥、栈存啥栈帧里存放什么东西
- 垃圾回收机制
- 了解哪些垃圾回收器——CMS和G1
- CMS
- 回收过程
- 为什么STW,会发生什么问题
- 优点
- G1和CMS有什么不同
- G1的优势,可以根据 regin 预判回收
JUC
- synchronized 1.8和1.7有什么不同
- 底层的锁不是由c++写的,由JVM内部去实现的,锁
- 说说并发的理解,原子性、可见性、有序性
- volatile怎么保证有序性
- volatile 读写锁
- 线程池常见的几种队列
- 无界的队列如果一直放入线程,会不会发生 OOM
- 说说cas
- cas 和 synchronized 的区别
- cas 产生的问题,链路风暴
框架
- Spring SpringMVC Spring Boot 有什么区别
- SpringMvc 和 Spring Boot 有什么不同
- MyBatis 和 JDBC 的区别
- 线程池
- 二级缓存
- 如果在MyBatis中不用缓存,还想到哪种方式实现,回答map缓存,出现OOM风险
Redis
- Redis会有并发吗
- Redis主从复制、哨兵机制怎么实现的
- 有什么问题,脑裂问题、数据不一致问题
- Redis内存淘汰策略
MySQl
- MySQL
- 怎么调优?日志 + 索引
- B+树和B树区别
- B+树作了什么优化
- B+树能存多少数据
- MySQL最大能承受的并发数
计算机网络
- TCP和UDP区别
- TCP怎么保证可靠性
- 三次握手、四次挥手
- 四次挥手可以同时握手吗?可以的
- 2MSL有什么用
Docker
- Docker的优点和Linux部署的优势,可以不虚拟操作系统
项目
- 缓存穿透、缓存击穿、缓存雪崩缓存穿透用什么保证
- 布隆过滤器原理,
- 可以逆向操作吗
- 布隆过滤器缺点,误杀
- lua脚本是什么东西
- RocketMQ创建订单
- 算法刷了几道,有什么心得
反问:
- 一共有几面
- 给我的建议
- 对算法无用论的看法