拼多多集团-PDD

收藏
电商
1000-9999人
上市
上海
福利丰厚榜学历友好榜高校必争榜offer比较常胜榜HC充足榜校招高薪榜牛客指数榜
查看官网
上传简历
职位类型
全部
后端开发
前端开发
客户端开发
产品
运营
更多
最新
热门
01-30 16:31
已编辑
北京工商大学 Java
1.拷打项目支付成功,支付宝送来的回调丢了怎么办 。通过mq延迟消息轮询支付宝保证,后面反思了下其实可以拓展说下多次轮询失败如何处理。支付服务的幂等性如何保证,为什么不能通过加锁。 支付收单是一个异步的过程,不好加锁,如果加锁的话,不知道什么时候适合释放,如果用户选择一个微信支付,但是觉得选错了,要打开支付宝支付,就会发现锁没有释放,会影响用户体验。我们现在通过退款去做这个事情,如果用户支付两次,对第二次进行退款,如果两个回调同时到了,出现并发问题,我们通过乐观锁去保证并发不出现冲突。我们的设计其实是参考了美团和拼多多做的。加锁的化,你会怎么加,答:数据库行锁/redis分布式锁。 问到redis分布式锁原理,没答上来分库分表怎么做的,面试官没有深问。2.kafka和rocketmq的区别,适用场景。rocketmq比较适合重业务的场景,Kafka因为sendfile的原因,吞吐量大,适合做日志处理,rocketmq有很多功能,比如说延迟消息,顺序消费,是Kafka没有的。我听一些之前在大厂工作过的同事说过,kafka经常被魔改,会有时间轮算法去做实现延迟消息,我认为如果在基建完善的地方,我这个项目是可以替换成Kafka的。3.mysql遇到慢sql怎么解决,比如说一个sql涉及5张表,怎么处理。我没回答上来。4.mysql索引类型。主族索引,非主族索引。 非主族索引包括哪些?比如unique key ,联合索引。什么情况会用到联合索引?有时候避免回表可能会用到。什么情况会导致联合索引失效?比如没有遵循最左匹配,或者是用了个函数。5.rocketmq事务消息怎么做的?producer先给broker发送一条半消息,然后producer执行本地操作,成功后提交消息给broker,然后broker再去投递消息。什么情况会用到事务消息?一般是在涉及到两个不同的系统中会用到,比如说我们支付服务,在支付成功后要给上游系统发一条mq的消息通知,这个时候就可以用事务消息,事务消息可以规避分布式事务。6.springboot启动流程。只说了一个读取META-INF的配置信息,其他的没说上。7.反问:什么业务?电商。电商的话怎么做的分账?通过微信支付或者是宝付。自己相比于一年前进步了很多是事实,但是大二上浪费太多时间,也缺乏面试经验。比如面试的适合我就经常发现自己表述并不清楚。目前打算面几家中厂攒攒经验,开学之后看看八股,刷leetcode,准备冲大厂,我的问题主要在于八股看的太少了,之前一直都在上班导致的,实战经验可能相对来讲丰富一点,很多内容由于之前工作没有接触过,我也就没有了解,这是我的问题。
点赞 评论 收藏
分享
得物、拼多多经常考,倒计时组件1.倒计时组件2.如何实现精确计时(setInterval 1s先就update以前知道写但没考虑到为什么,时间戳同步)// Countdown.jsximport React, { useEffect, useState, useRef } from 'react';/*** props:*  - endAt: number (timestamp ms) 或 Date*  - onFinish?: () => void*  - tickMs?: number (minimal tick granularity, default 1000)*/export default function Countdown({ endAt, onFinish, tickMs = 1000 }) {const endTs = typeof endAt === 'number' ? endAt : endAt.getTime();const [remaining, setRemaining] = useState(Math.max(0, endTs - Date.now()));const mounted = useRef(true);useEffect(() => {mounted.current = true;// initial syncfunction update() {const now = Date.now();const rem = Math.max(0, endTs - now);if (!mounted.current) return;setRemaining(rem);if (rem === 0) {onFinish?.();return;}// Align next update to wall-clock second boundary (or tickMs)const delay = Math.min(tickMs,1000 - (now % 1000) // align to next second for nicer UX);// If <1s left, use requestAnimationFrame for smoothnessif (rem <= 1000) {requestAnimationFrame(update);} else {setTimeout(update, delay);}}update();return () => {mounted.current = false;};}, [endTs, onFinish, tickMs]);const sec = Math.ceil(remaining / 1000);const mm = Math.floor(sec / 60);const ss = sec % 60;return (<div>{mm}:{String(ss).padStart(2, '0')}</div>);}
查看2道真题和解析
点赞 评论 收藏
分享
2025-12-24 20:46
武汉大学 Java
点赞 评论 收藏
分享
2025-12-24 15:50
门头沟学院 Java
1. 项目经历拷打2. HashMap 扩容时链表转红黑树的阈值为什么是 8?退化为 6 又是为什么?3. synchronized 锁升级过程详解 — 从无锁到重量级锁一步步拆解4. G1 垃圾回收器如何预测停顿时间?Region 大小该怎么设置?5. volatile 能保证数组元素的可见性吗?不能的话该怎么解决?6. ThreadLocal 内存泄漏的根本原因是什么?JDK 做了哪些改进?7. Java 8 Stream 并行处理原理 + ForkJoinPool 工作窃取机制浅析8. AQS 中为什么使用 CLH 队列而不是普通链表?9. 线程池核心参数设置规则 + 美团动态调整方案分享10. ConcurrentHashMap 的 size() 为什么不精确?有没有替代方案?11. 如何用 CAS 实现一个无锁栈?ABA 问题如何规避?12. CompletableFuture 如何实现多个异步任务依赖执行?13. MySQL 索引失效的 10 种场景 + 最左前缀原则底层原理14. 十亿级订单表如何优化分页查询?实战思路分享15. Redis 大 Key 删除导致集群崩溃,如何避免?16. Redis 事务 vs MySQL 事务 — ACID 区别到底在哪?17. 缓存与数据库一致性方案对比 + 拼多多秒杀实战选用策略18. Redis Cluster 的 slot 迁移过程会阻塞请求吗?
查看17道真题和解析
点赞 评论 收藏
分享
2025-12-22 12:15
门头沟学院 Java
1、实习介绍,看机会原因,项目。2、redis常用的数据结构,项目中用过哪几种,业务中使用的场景3、redis的hash怎么实现的,rehash过程讲一下 和JavaHashMap的rehash有什么区别?redis cluster怎么做到高可用的?4、redis集群和哨兵机制有什么区别?redis的持久化机制了解吗?遇到过redis的hotkey吗?怎么处理的?5、redis是单线程的吗?单线程为什么还这么快?讲一讲redis的内存模型?6、简单说一下RabbitMQ的工作原理?如何保证消息的顺序执行?7、卡夫卡了解吗?和RabbitMQ有什么区别?8、tcp/udp简单说下两者的区别?tcp为什么要三次握手和四次挥手?两次握手可以不?会有什么问题?tcp怎么保证有序传输的9、讲下tcp的快速重传和拥塞机制,知不知道time_wait状态,这个状态出现在什么地方,有什么用?10、http与https区别?https是怎么做到安全的?11、有没有了解过协程?说下协程和线程的区别?用过哪些linux命令?如查看内存使用、网络情况?12、你了解哪些设计模式啊。挑一个熟悉的讲讲?(除了单例模式)在项目中有用过设计模式吗?讲讲你怎么用的?简单说一下适配器模式和装饰器模式?13、索引的常见实现方式有哪些,有哪些区别?14、MySQL的存储引擎有哪些,有哪些区别?InnoDB使用的是什么方式实现索引,怎么实现的?说下聚簇索引和非聚簇索引的区别?15、raft算法的基本流程?raft算法里面如果出现脑裂怎么处理?16、paxos和zookeeper的zab算法,他们之前有啥区别?17、如果我是想一个人的姓名一样就认为他们equal,能现场写下我们怎么重写equals吗?如果两个对象,一个是cat,一个是dog,我们认为他们的name属性一样就一样,怎么重写equals18、还有点时间,写个题吧leetcode406.根据身高重建队列假设有打乱顺序的一群人站成一个队列。每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]
点赞 评论 收藏
分享
分享我的面试经验
模拟面试
真实面试体验,快速补齐短板
应聘感受
暂无应聘感受
牛客网
牛客网在线编程
牛客网题解
牛客企业服务