拼多多Java后端开发一面(地獄级别)
#面试问题记录#
一、Java基础与JVM(6题)
HashMap扩容时链表转红黑树的阈值为什么是8?退化为6的原因?
synchronized锁升级过程?
G1垃圾回收器如何预测停顿时间?Region大小如何设置?
volatile能否保证数组元素的可见性?如何解决?
ThreadLocal内存泄漏的根本原因?JDK改进方案?
Java 8中Stream的并行处理原理?ForkJoinPool工作窃取机制?
二、并发编程(5题)
AQS中为什么用CLH队列而不用普通链表?
线程池核心参数设置规则?美团动态调整方案?
ConcurrentHashMap的size()方法为何不精确?替代方案?
如何用CAS实现一个无锁栈?ABA问题如何规避?
CompletableFuture如何实现多个异步任务依赖执行?
三、数据库与Redis
MySQL索引失效的10种场景?最左前缀原则的底层原理?
十亿级订单表如何优化分页查询?
Redis大Key删除导致集群崩溃,如何避免?
Redis事务与MySQL事务的ACID区别?
缓存与数据库一致性方案对比?拼多多秒杀采用哪种?
Redis Cluster的slot迁移过程会阻塞请求吗?
MySQL死锁排查步骤?如何用gap锁解决幻读?
四、分布式与微服务(6题)
TCC事务的Confirm阶段失败怎么办?
如何设计一个支撑百万QPS的分布式ID生成器?
Nacos如何实现配置动态推送?长轮询原理?
RocketMQ如何保证消息不丢失?
Dubbo的泛化调用使用场景?如何实现服务降级?
CAP理论在拼多多购物车中的取舍?
五、系统设计(4题)
设计拼多多砍价系统,如何防止刷单?
订单超时未支付自动关闭,如何实现?
如何设计一个实时热卖排行榜?
分布式锁在库存扣减中的应用,Redisson实现原理?#牛客AI配图神器#
一、Java基础与JVM(6题)
HashMap扩容时链表转红黑树的阈值为什么是8?退化为6的原因?
synchronized锁升级过程?
G1垃圾回收器如何预测停顿时间?Region大小如何设置?
volatile能否保证数组元素的可见性?如何解决?
ThreadLocal内存泄漏的根本原因?JDK改进方案?
Java 8中Stream的并行处理原理?ForkJoinPool工作窃取机制?
二、并发编程(5题)
AQS中为什么用CLH队列而不用普通链表?
线程池核心参数设置规则?美团动态调整方案?
ConcurrentHashMap的size()方法为何不精确?替代方案?
如何用CAS实现一个无锁栈?ABA问题如何规避?
CompletableFuture如何实现多个异步任务依赖执行?
三、数据库与Redis
MySQL索引失效的10种场景?最左前缀原则的底层原理?
十亿级订单表如何优化分页查询?
Redis大Key删除导致集群崩溃,如何避免?
Redis事务与MySQL事务的ACID区别?
缓存与数据库一致性方案对比?拼多多秒杀采用哪种?
Redis Cluster的slot迁移过程会阻塞请求吗?
MySQL死锁排查步骤?如何用gap锁解决幻读?
四、分布式与微服务(6题)
TCC事务的Confirm阶段失败怎么办?
如何设计一个支撑百万QPS的分布式ID生成器?
Nacos如何实现配置动态推送?长轮询原理?
RocketMQ如何保证消息不丢失?
Dubbo的泛化调用使用场景?如何实现服务降级?
CAP理论在拼多多购物车中的取舍?
五、系统设计(4题)
设计拼多多砍价系统,如何防止刷单?
订单超时未支付自动关闭,如何实现?
如何设计一个实时热卖排行榜?
分布式锁在库存扣减中的应用,Redisson实现原理?#牛客AI配图神器#
全部评论

一面偶遇八股炼狱,连环拷问恐怖如斯,拼劲全力无法战胜

有点意思,成功引起了我的注意(欢迎讨论)
一
1. 红黑树单个节点的空间为链表的两倍,长度低时红黑树优势不大。退化阈值为6是为了留一定缓冲空间防止反复横跳,树化和反树化都是有开销的
2. 板子
3. jvm参数设置期望停顿时间,g1将堆空间分为若干的region并维护每个region的回收价值。g1根据历史数据预测本次gc时间,若高于期望停顿时间,gc时优先选定价值最大的若干region进行回收
4. jvm参数
5. 不能。用AtomicReference<T>
6. 工作线程的复用。key弱引用,且获取key等操作时会扫沿途的脏Entry,但仍不能完全防止。实际使用中必须在finally块中手动remove
7 8. 不懂
二
1. 不懂
2. 核心线程数cpu密集型取核数+1,io密集型看具体的时间占比,队列选有界,拒绝策略看具体业务场景
3. 不懂,猜可能是获取时其它线程并发修改?
4. cas栈顶元素,注意判空。后半问板子
5. 链式调用 .then()
三
1. 10种是真逆天,真就八股文呗。最左前缀只要讲清楚b+树索引的原理就很好答
2. 该拆表了。。子查询能优化,但10亿表长下还是会慢
3. 没见过。但是redis治理本就是平时不容忽视的一环,包括大key热key连接数key数量等,删一个key能把集群崩掉,说明这方面工作已经欠缺到一定程度了。。
4. 拆开分析。redis没有回滚机制不满足a,没有a就满足不了c,内存读写单线程没有i的概念,持久化策略无法完全防止数据丢失所以不满足d。综上redis事务acid皆不满足
5. 旁路 双删 监听binlog。秒杀场景一般旁路即可,一致性要求高可以上双删
6. 不会。如果服务端收到请求时slot正在迁移,会检查该部分数据是否已经被迁走。是则响应ASK重定向目标实例,否则直接返回数据
7. 查日志→定位→复现→分析原因。隔离级别设为rr,会默认以临键锁作为行锁的物理实现,锁间隙防插入从而在一定程度上避免幻读(不能完全防止)
四
1. 回滚
2. 参考snowflake
3. 不知道
4. 从两方面答,生产者→broker阶段依赖刷盘和ack,结合不同ack参数(异步半同步全同步)讲;消费者丢失消息的情况,可以等业务返回再手动提交offset,但要求下游业务幂等
5. 没用过dubbo,降级配fallback方法,指标达阈值自动触发降级策略,也可手动配置降级开关
6. 无分区全保。有分区保ap,购物车距离订单和支付还有一段距离,阻塞用户购物车操作影响体验
五
1. 风控领域的范畴,很复杂不是几句话能说明白的。可以从人机验证、ip检测、截/录屏检测、黑名单、用户画像等角度聊
2. rmq延时队列。定时任务扫表也是一种方案,但对大表开销高
3. 黑马点评
4. 前半问黑马点评,redisson是客户端本质上是多一层封装,将一系列操作打包进lua脚本中。hash存线程id实现可重入,zset存线程id实现公平锁

当我把这些面试题丢给deepseek:嗯,用户一口气列出了五大部分共31个技术问题,覆盖Java基础、并发编程、数据库、分布式系统和系统设计,明显是准备高阶面试或技术攻关。这类问题清单通常来自资深后端工程师的复习提纲,尤其是涉及拼多多、美团等大厂实践方案,用户可能在备战P7/P8级别面试。
这是提前批吗我的天

后天面试的我瑟瑟发抖了,这是啥部门啊
加油
找工作的同学们点我主页了 说不定对你有帮助
夸张 复健的我直接被吓哭了
我靠这么难
😨好难啊,一些题目我连听都没听过
这是投的哪个岗位,我咋没看到java开发的岗

清华
都做不到吗
mark
终于知道为什么PDD直接把我简历挂了,因为知道我连一面都过不去,好难得题
离谱🥴
这是提前批吗,拼多多秋招开了吗,我咋好像只看到提前批
炸缸了,明天面试,这里面我就会常见的八股
确实难
都不会
名字说一下
关注牛牛,后期更新面经和八股
pdd
相关推荐
07-23 17:49
温州大学 golang 点赞 评论 收藏
分享

点赞 评论 收藏
分享

点赞 评论 收藏
分享