快手凉经
快手一面(1h):
1.自我介绍
2.JVM的构造
3.垃圾回收器种类
4.垃圾回收算法
5.线程池执行流程以及饱和策略
6.核心线程和普通线程的区别,如何区分
7.事务的隔离级别
8.mysql什么情况下索引失效
9.三种索引结构对比
10.mysql索引流程
11.Redis数据结构
12.缓存穿透、缓存击穿、缓存雪崩以及各自的解决方法
13.Redis为什么高性能
14.TCP和UDP区别,以及不同使用场景
15.TCP如何保证可靠传输
16.如何实现一个IOC容器
17.实习项目:lucene工具包如何实现倒排索引,查询流程。
18.手撕算法(中等):输出二叉树每一层最右节点。
快手二面(52min):
1.自我介绍
2.项目介绍,从入职到现在
3.为什么要做这些工作,有什么意义
4.Redis数据结构
5.zset底层实现,跳表插入数据的流程
6.ConcurrentHaspMap原理和扩容
7.ArrayList原理和扩容,刚开始加入20个元素超过扩容15会如何处理呢?看过源码吗?
8.项目中为什么使用分布式锁,除了用的lua脚本外分布式锁java如何实现的
9.手撕算法(中等):两个链表按照两数相加的原则生成另一个链表,主要是边界值分析。
快手三面(50min):
1.自我介绍
2.springboot的过滤、拦截和tomcat的过滤、拦截
3.Redis数据结构,String底层的考虑
4.分布式锁如何保证数据一致性
5.bean的作用域,为什么默认单例(线程考虑)
6.Redis持久化机制以及如何保证分布式场景下追加AOF文件的一致性
7.主从复制以及binlog日志主从如何保持一致性
8.Synchronized升级过程
9.Synchronized如何实现的,底层原理
第三面无手撕算法,确实答得不够好,有点遗憾吧,倒在三面!继续加油!
#秋招##面经#