拼多多开发一面
1.挑一个你印象最深的项目聊聊吧,或者讲讲你做过的什么有意思的优化。
2.HashMap里,链表转红黑树的阈值为什么设成8?那为什么退化的时候是6呢?
3.synchronized的锁升级过程,能讲一下吗?
4.G1垃圾回收器是怎么预测停顿时间的?它的Region大小一般怎么定?
5.volatile能保证数组里每个元素的可见性吗?如果不能,要怎么解决?
6.ThreadLocal为什么会内存泄漏,根本原因是什么?JDK后来有什么改进方案吗?
7.Java 8里,Stream的并行处理是怎么实现的?
8.ForkJoinPool的工作窃取(Work-Stealing)机制,能解释一下吗?
9.AQS里面为什么用的是CLH队列,而不是普通的链表?
10.线程池的核心参数一般怎么设置?听说美团有动态调整的方案,了解吗?
11.平时怎么监控和优化慢SQL查询?
12.如果让你用CAS实现一个无锁栈,你有什么思路?
13.用CompletableFuture怎么实现有依赖关系的多个异步任务?
14.能列举一些MySQL索引失效的场景吗?最左前缀原则的底层原理是啥?
15.一张十几亿数据的订单表,分页查询要怎么优化?
16.假如删一个Redis的大Key导致集群挂了,怎么避免这种情况?
17.Redis的事务和MySQL的事务,在ACID特性上有什么区别?
18.缓存和数据库一致性有哪几种方案,能对比一下吗?像拼多多的秒杀场景,你觉得会用哪种?
19.Redis Cluster在做slot迁移的时候,会阻塞客户端请求吗?
20.MySQL里遇到死锁了,一般的排查步骤是怎样的?另外,间隙锁(gap lock)是怎么解决幻读问题的?
21.让你来设计一个类似拼多多砍价的系统,你会怎么考虑防止刷单?
22.介绍一下分布式事务吧,都有哪些常见的解决方案?
23.如果要你设计一个实时的热卖商品排行榜,你会怎么做?
24.在扣减库存的场景里,分布式锁是怎么应用的?Redisson的实现原理了解吗?
25.核心代码模式算法题:斐波那契数列