面灵AI→

拼多多、荣耀、得物、华橙后端与 Agent 开发面经:八股、场景题与手撕

轮次
多轮
时间
2026-10
来源
牛客网

《面试题目》

拼多多 · 服务端一面

  1. 实习经历相关提问。
  2. 8G 内存如何完成 TB 级别文件的求交集?
  3. HashMap 是同步还是异步进行 put 的?
  4. 数据库表可变字符串长度由 32 改为 64,这期间会发生什么?
  5. 手撕:字符串计算转 long(需要判断加减、0x 和溢出)。

拼多多 · 服务端二面

  1. 介绍一下实习工作。
  2. Java 面向对象的三个特征是什么?
  3. 反射是什么?优缺点是什么?
  4. 介绍一下数据库中的索引。
  5. B+ 树如何实现范围查询?
  6. volatile 和 synchronized 的区别是什么?
  7. 介绍一下 Java 里面的集合。
  8. HashMap 的扩容机制是怎样的?
  9. ConcurrentHashMap 的安全性是怎么保证的?
  10. CAS 和加锁有什么区别?
  11. 什么是悲观锁?什么是乐观锁?
  12. 介绍一下 JVM。
  13. 手撕:吃橘子。
  14. 手撕:力扣二维数组查找(两种方法都写)。

荣耀 · Java 开发一面

  1. 实习经历相关提问。
  2. 讲讲 KMP 算法。
  3. 微服务中各个组件的作用是什么?
  4. 如何发现注册的各个服务?
  5. 一道 SQL 题。
  6. 如何保证信息传输的安全?
  7. 网页前端渲染发生了什么?
  8. Redis 的淘汰策略有哪些?

立元科技

  1. 研究方向与实习内容相关提问。

得物 · Java 开发一面

  1. 介绍实习内容。
  2. 介绍微服务。
  3. 项目中消息队列积压了怎么办?
  4. 项目中是如何使用 Redis 的?
  5. 数据库索引的原理。
  6. 有没有看过一些源码?
  7. 如何学习新技术?
  8. 如何为电商系统加入搜索功能?
  9. 线上某个服务突然堵塞了,怎么办?
  10. 项目中为什么选择 BCrypt 加盐存储密码?

华橙 · Agent 开发一面

  1. 研究方向相关提问。
  2. 针对你的研究方向,间接提示词注入怎么办?
  3. 上传大文件生成摘要时,token 满了怎么办?
  4. 知识库的文档切分策略。

《参考解析》

海量文件求交集: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 与章节路径。