8.16快手后端一面
自我介绍
拷打项目(40min)
选一个自认为最满意的项目,先简单介绍一下。顺着项目考察的点如下
redis:
若大量并发请求一个不存在的数据(缓存穿透)怎么解决?
布隆过滤器的原理是什么?
布隆过滤器的01数组发生哈希冲突怎么办?
多线程:
常用的线程池类有哪些?
线程池的核心参数有哪些?
线程池工作流程?
spring:
循环依赖如何解决?
A中有B,B中有A,给A加上@Lazy之后,B就能正常初始化了吗?
spring三级缓存了解吗?
java基础:
HashMap的底层数据结构
HashMap扩容机制
HashMap值数组中的index值怎么计算
JVM:
JVM分为哪几块区域?
哪些区域会出现OOM?
new出来的对象只能存在堆区吗?
了解哪个垃圾回收器?(当时回答了fullGC。。。但这是个回收过程。原理都记得,但就是实在是没想起来那个叫G1垃圾回收器。。。)
数据库:
数据库四种隔离级别?
mysql索引采用的数据结构?
若查询条件为“A=...,B=...,C>...”,如何使用索引优化?
mvcc是什么,怎么实现的?
算法题(20min)
最长不重复子串(用滑动窗口解决)
先和面试官捋清了思路,再敲代码(面试官人很好,还会适当引导怎样会更好一些)