美团基础研发平台一面
- 我的目前offer情况和具体这个面的部门(上来聊天聊了十几分钟确实没想到)
- 我的项目
- 为什么用 LongAdder 而不是 AtomicInteger(关于精确度与并发上面的考量)
- LongAdder 为什么并发比 AtomicInteger 更好(Striped64 Cell 数组)
- Bean 初始化的过程
- 循环依赖解决过程
- Filter、Interceptor、AOP 对比
- 常见的 Interceptor (我居然没想起来)
- 线程池的各个参数的作用
- 先进队列还是先创建救急线程
- 有哪些常用的 Queue
- ThreadFactory 的作用是什么(感谢面试官引导)
- 那线程的名字有什么用,举个例子
- Jstack 中有什么状态
- Jstack Time wait 状态
- 什么情况下会进入 wait 状态
- wait 为什么会在 Object 上
- JVM 怎么实现 STOP THE WORLD
- ZGC
- 什么是内存屏障
- 内存屏障是怎么实现的
- Redis 数据结构
- Redis 如何实现过期
- Redis 持久化(AOF、RDB、重写、输入挤压缓冲区...)
- 为什么 DB 是写前日志,Redis 是写后日志
- 缓存穿透是什么
- 怎么解决
- BitMaps 具体怎么做呢
- 如果一个ID能通过布隆过滤器,但又不存在 DB 中,用户同一时间请了很多关于这个ID的请求,这些请求都直接打到 DB 了怎么办
- 怎么解决
- 业务上一般过期时间是多少(啊这)
- 数据一致性解决
- 什么时候双写,都要双写吗
- 我想强一致性怎么搞
- 先删缓存还是先删 DB
- TCP 四次挥手 TIME-WAIT 状态
- TCP 如何保证可靠性
- 快速重传和超时重传的区别,为什么这么做
- Sequence 如何生成
- Sequence 随机生成之后超过了最大值回去了怎么办,怎么解决(没了解)
- HTTP 常见状态码
- HTTPS 如何保证安全性
- MySQL 常用的锁
- 间隙锁
- 什么情况下加间隙锁
- 意向锁
- 行锁锁得是什么(原来锁的是索引啊)
- 间隙锁
- 算法题
给定一个字符串数组,给定多个前缀,找出字符串数组中包含前缀的个数 - 有了解过前缀树吗
- 前缀树和你用的有什么区别