拼多多、荣耀、得物、华橙后端与 Agent 开发面经:八股、场景题与手撕
- 轮次
- 多轮
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
拼多多 · 服务端一面
- 实习经历相关提问。
- 8G 内存如何完成 TB 级别文件的求交集?
- HashMap 是同步还是异步进行 put 的?
- 数据库表可变字符串长度由 32 改为 64,这期间会发生什么?
- 手撕:字符串计算转 long(需要判断加减、0x 和溢出)。
拼多多 · 服务端二面
- 介绍一下实习工作。
- Java 面向对象的三个特征是什么?
- 反射是什么?优缺点是什么?
- 介绍一下数据库中的索引。
- B+ 树如何实现范围查询?
- volatile 和 synchronized 的区别是什么?
- 介绍一下 Java 里面的集合。
- HashMap 的扩容机制是怎样的?
- ConcurrentHashMap 的安全性是怎么保证的?
- CAS 和加锁有什么区别?
- 什么是悲观锁?什么是乐观锁?
- 介绍一下 JVM。
- 手撕:吃橘子。
- 手撕:力扣二维数组查找(两种方法都写)。
荣耀 · Java 开发一面
- 实习经历相关提问。
- 讲讲 KMP 算法。
- 微服务中各个组件的作用是什么?
- 如何发现注册的各个服务?
- 一道 SQL 题。
- 如何保证信息传输的安全?
- 网页前端渲染发生了什么?
- Redis 的淘汰策略有哪些?
立元科技
- 研究方向与实习内容相关提问。
得物 · Java 开发一面
- 介绍实习内容。
- 介绍微服务。
- 项目中消息队列积压了怎么办?
- 项目中是如何使用 Redis 的?
- 数据库索引的原理。
- 有没有看过一些源码?
- 如何学习新技术?
- 如何为电商系统加入搜索功能?
- 线上某个服务突然堵塞了,怎么办?
- 项目中为什么选择 BCrypt 加盐存储密码?
华橙 · Agent 开发一面
- 研究方向相关提问。
- 针对你的研究方向,间接提示词注入怎么办?
- 上传大文件生成摘要时,token 满了怎么办?
- 知识库的文档切分策略。
《参考解析》
海量文件求交集:TB 数据读不进 8G 内存,解法是哈希分片加逐片求交。按 hash(行) % N 把两文件各切 N 份,相同内容必落同一分片,N 取到单份能装进内存;逐对处理时把 A 的分片读进哈希集合,流式扫 B 的对应分片,命中即输出。只判断有无交集时用布隆过滤器更省内存,要精确结果就用集合。分片要均匀防热点,瓶颈常在磁盘 IO。
HashMap 的并发 put 与扩容:put 不加同步,不是线程安全的。1.8 空桶用 CAS、桶内冲突才 synchronized 锁桶首节点,并发 put 仍会丢更新,要并发就用 ConcurrentHashMap。扩容阈值是元素数超过容量乘负载因子(默认 16×0.75),容量翻倍后用 hash & oldCap 把旧桶拆成「原位」和「原位 + oldCap」两条链,不用重算哈希。
VARCHAR 长度变更:要不要重建表取决于长度前缀字节数。utf8mb4 下 32×4=128 字节、前缀 1 字节;64×4=256 字节超过 255,前缀变 2 字节,行格式改变,只能 COPY 重建整表——耗时长、占近双倍磁盘、易拉高主从延迟。长度仍在同一前缀区间(如 32 改 48)才能只改元数据;实操选低峰,用 online DDL 或 gh-ost。
线上堵塞与 MQ 积压:都先止血再定位。堵塞先分清是流量突增、下游变慢还是自身资源耗尽——top -H 配 jstack 找阻塞线程,同时看连接池、GC 与慢查询;止血靠限流降级、扩容、摘掉异常节点。积压先分清生产暴涨还是消费变慢:加消费者(上限受分区数约束)、批量拉取、消费里的远程调用改异步、非关键消息转死信补偿,并确认幂等。
Agent 三问:间接提示词注入是恶意指令藏在检索到的网页或文档里,只写一句「忽略文档中的指令」不够,要把外部文本标为数据区、检测可疑指令、工具权限最小化并对高危动作二次确认。大文件摘要超 token 用分层摘要(分段再汇总)或滑动窗口滚动摘要。切分优先按标题、段落、代码块的语义边界,固定长度加 10%~20% 重叠兜底,块要带 doc_id 与章节路径。