快手一面
1.要不先做下自我介绍?说一说你最近做的那个项目?然后针对简历提了几个问题
2.mysql
- 我看你简历里面说做过mysql的优化,说说你都做过哪些优化或者优化的思路?
- 数据库的索引了解吗?说一下索引的原理?聚集索引和非聚集索引了解吗?
- 了解mysql的回表吗?
- mysql实现分布式锁了解吗?还有没有其他更好的方式?
3.事务
- 说一下事务的一些东西?
- 你对事务的了解有哪些?
- 说说数据库的乐观锁和悲观锁?
4.reids
- Redis有哪些持久化方式?
- 你们在项目中一般怎么做持久化?
- 如何实现集群和高可用?
5.锁
- Java中有哪些锁?
- synchronized与Lock有哪些区别?
- 什么是公平锁和非公平锁?
- 他们的底层怎么实现的?
- AQS原理了解吗?能不能详细介绍一下?
6.线程池
- 说一下线程池的原理?
- ExcutorService下的四种线程池分别用在什么场景下?
- 为什么单线程池和固定线程池使用的任务阻塞队列是LinkedBlockingQueue(),而缓存线程池使用的是SynchronousQueue()呢?
7. validate
- 说一下violate关键字吧?
- 刚才你提到可见性?他是如何保证可见性的?
8.GC
- 说一下GC吧,什么时候进行Full GC呢?
- 你了解哪些收集器?
- CMS和G1,详细谈谈G1的优点
9.算法
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。