2026-03-16 16:32:52
拼多多一面、二面面经总结如下:
一面(约50分钟)自我介绍与项目深挖
重点介绍实习和项目经历,面试官针对项目细节提问:
Redis使用:项目中用了Redis的哪些数据结构(如跳表),并要求解释跳表的实现原理。
数据库设计:包括表结构设计、索引设计思路、设计缺陷及优化方案。
场景题:设计一个班级成绩表(涉及老师、学生、课程、成绩),需考虑数据冗余与查询效率。
八股文知识考察
Java集合类:ConcurrentHashMap的实现原理。
多线程:如何保证线程安全(如锁机制、CAS等)。
Spring框架:
IoC(控制反转)和AOP(面向切面编程)的核心思想。
AOP动态代理的实现方式(JDK动态代理源码级提问)。
编程题
题目:给定一个正整数数组,计算每个元素与后面第一个比它大的元素之间的间隔距离。
考察点:数组遍历、逻辑处理能力。
自我介绍与项目节奏调整
面试官表示一面已详细问过项目,转而考察基础能力,但强调“基础扎实”。
计算机网络与系统知识
TCP四次挥手:重点解释TIME_WAIT状态的作用(确保最后一个ACK到达对方,避免旧连接干扰)。
客户端与服务器连接:
单台客户端与服务器能建立的最大连接数(受端口号范围限制,约65535个)。
拥塞控制策略(如慢启动、拥塞避免、快速重传/恢复)。
进程间通信方式(如管道、消息队列、共享内存)。
数据库与索引
MySQL索引优缺点:
优点:加速查询、唯一性约束。
缺点:占用存储空间、降低写性能(增删改需维护索引)。
B+树结构:多路平衡查找树,适合磁盘存储,范围查询效率高。
隔离级别:读未提交、读已提交、可重复读、串行化。
MVCC(多版本并发控制):通过读写锁和版本链实现非阻塞读。
乐观锁/悲观锁:乐观锁(CAS)适用于冲突少场景,悲观锁(锁机制)适用于高并发写场景。
Java核心知识
HashMap详解:
底层结构(数组+链表/红黑树)。
扩容机制(rehash)、哈希冲突解决。
5种IO模型:
阻塞IO、非阻塞IO、IO多路复用(select/poll/epoll)、信号驱动IO、异步IO。
select与epoll区别:
select基于轮询,默认支持1024个文件描述符(受FD_SETSIZE限制)。
epoll基于事件回调,无数量限制,效率更高。
线程池与拒绝策略
线程池参数:核心线程数、最大线程数、队列容量、存活时间。
拒绝策略:
AbortPolicy(抛异常)、CallerRunsPolicy(调用者执行)、DiscardPolicy(丢弃)、DiscardOldestPolicy(丢弃最旧任务)。
编程题
题目:给定字符串S,输出包含连续两个S作为子串的最短字符串。
考察点:字符串匹配、逻辑优化能力。
表现对技术的热情(如热爱学习、追求卓越)。
提前了解拼多多业务(如电商、社交拼团模式)。
薪资期望需合理,结合市场水平与个人能力。
祝顺利通过面试,拿到心仪offer!