“情况明,决心大,方法对” -- 毛泽东
查看源代码

面试专题

面试问题汇总(Java 后端为主)


赢时胜(一面)

  1. 药德 AI 助手团队规模与分工(长沙/苏州、后端/前端/Leader 配比)
  2. 为什么用 Python + LangChain 做应用层开发?
    • 对比 Java 生态(LangChain4j / Spring AI 等)在组件成熟度、更新速度、工程化(治理/部署/监控)、人才栈上的权衡
  3. LangChain 选型与核心组件理解
    • Loader / Splitter / Embedding / VectorStore / Retriever / Memory / Tools(联网搜索)分别解决什么问题
  4. Prompt 工程如何做优化?
    • 系统角色、约束条件、输出格式(JSON Schema / Pydantic)、防幻觉/敏感过滤、Few-shot 样例、评测与回归
  5. Spring IoC 与 AOP 如何实现?
    • BeanFactory vs ApplicationContext、Bean 生命周期、三级缓存与循环依赖、JDK 动态代理 vs CGLIB、AOP 调用链
  6. List.contains vs Map.containsKey/containsValue 复杂度是否一样?
    • 数据结构差异(数组/链表/哈希/红黑树)与 equals/hashCode 影响
  7. 悲观锁 vs 乐观锁;synchronized 锁升级过程
    • 偏向锁/轻量级/重量级(以及自旋);ReentrantLock 公平/非公平;读写锁适用场景
  8. MySQL 优化:深度分页、索引使用、避免索引失效
    • 覆盖索引、索引下推(ICP)、回表、排序(filesort vs index order)、慢 SQL 分析(explain)
  9. “高水位”与回表怎么优化(过滤性/回表成本/下推条件/减少扫描)
  10. 未来职业方向、学习方式(个人学习/同事交流)、周期与选型参与度

渊亭科技

  1. 记忆模块怎么做?
    • 实时对话记忆(会话上下文) vs 文档/页面记忆(长期知识),隔离策略(userId + sessionId)
  2. 大模型“用在链路的哪里”?调用流程怎么设计?
    • 先检索再生成、工具调用(联网搜索)、Prompt 组装、调用次数/超时/降级
  3. Gateway 做了什么?路由是配置文件写的吗?
    • 路由模式(静态配置/服务发现)、鉴权/限流/灰度/熔断落地
  4. 权限控制怎么做?(租户/企业/门店/业态)
  5. Spring Boot 启动过程理解
    • 追问:如果要在启动阶段“对所有 class 增加一个 int 全局变量”,你会想到哪些切入点(字节码增强/Instrumentation/容器扩展点)
  6. 多线程与线程池:锁升级;线程池调度策略
    • 追问:如何实现“核心线程满了先扩容到最大线程,再入队列”(需要自定义 ThreadPoolExecutor/队列)
  7. 线程创建与销毁时机(核心线程/非核心线程、keepAliveTime)
  8. Redis:除缓存外使用场景与基础类型;zset
  9. MySQL 索引数据结构(B+Tree/Hash 等)与 MVCC
  10. 网络分层:七层模型;Nginx 位于哪一层(常见:应用层 L7;也可做 L4 代理)

赢时胜(二面)

  1. 文档切割怎么做?chunkSize/overlap 如何确定?
    • 按段落/标题/语义切分;不同文档类型策略;A/B 评测与召回-精确权衡
  2. 解析 1000 页 PDF 的耗时估算与瓶颈
    • 并行解析、IO/CPU 占比、缓存与增量更新、失败重试与断点续传
  3. RAG 的定义、流程与原理;RAG vs 微调区别与适用场景
  4. 模型文件/部署形态与微调是否“改变模型”
    • 权重文件、LoRA/QLoRA、合并与回滚、模型升级与兼容迁移
  5. 信息抽取(IE):病历抽取结构化字段(JSON)怎么做
    • 约束输出、失败兜底、抽取评测、对抗脏数据

绝味鸭脖

  1. SaaS 多租户数据隔离方案(公共库 vs 大客户独立库)
  2. MySQL 开发规范:你会写哪些规则?目标是什么?
  3. 表设计:字符集/排序规则(collation)、字段类型选择、索引策略
  4. InnoDB vs MyISAM(事务/锁粒度/崩溃恢复/索引组织方式/外键)
  5. DDD 的理解与落地(概念/代码结构/聚合根/领域事件)
  6. SkyWalking:TraceID 的传播与跨线程问题(TransmittableThreadLocal)
  7. 频繁 Full GC / OOM 排查(GC 日志 + dump + MAT 定位到代码)
  8. 微服务常用组件(注册中心/配置中心/RPC/限流熔断/链路追踪)
  9. POS 收银相关业务理解(营销/券/支付与对账)

数字玛丽

  1. 老系统数据迁移:如何过渡、冷备/归档、如何保证一致性与可回滚
  2. SaaS 0-1 搭建关键点(租户模型、权限体系、运营/实施成本)
  3. 云上网络与安全域:VPC/子网/安全组/多环境隔离、域名与访问控制
  4. SpringCloud/SpringBoot 版本与组件选型
  5. 多租户表/库切换与定时任务配合
  6. 对接三方平台:鉴权/幂等/重试/回放/对账
  7. AI 辅助诊断:面向医生/门店人员的推荐链路(非 ToC),权限与合规
  8. 文档切割、模型微调、多模态的理解与落地边界
  9. 会话历史缓存:token/上下文怎么存、怎么摘要、如何控长度与成本
  10. RocketMQ:解决什么问题(异步解耦/削峰/延时),云服务与自建差异
  11. 顺序消息怎么保证(全局顺序/局部顺序、selector/hash 到队列)
  12. 生产运维:积压排查、位点、扩容、消费并发、死信与重试
  13. RocketMQ 存储结构:CommitLog/ConsumeQueue/IndexFile、零拷贝(mmap)
  14. SQL 瓶颈:大事务、编码/排序规则、索引与回表、查询链路优化
  15. 线程池与动态线程池:监控指标、告警、核心/最大线程数为何常配一致(任务型/定时型)
  16. 自研 starter:告警(飞书机器人)、异常过滤、统一配置
  17. Nacos:注册/配置/鉴权/配置加密(偏运维边界也会问)
  18. JDK17:了解哪些特性(ZGC/G1、语法特性、性能变化)
  19. 团队与规范:你认为最重要的工程规范是什么(可观测性、发布、回滚、代码质量)
  20. 短链系统:数据规模、分库分表、渠道(channel + 时间戳)

希尚

  1. 单表过亿/高并发:分库分表/冷热分离/归档(例如 Redis LRU + 两个月热数据)
  2. 高并发落地:缓存策略、限流/降级、热点 key 处理
  3. ES 存什么数据、规格怎么建模(只存检索字段 vs 全量冗余)
  4. DDD 落地经验与边界

外包

  1. 分布式锁未释放导致并发执行:如何定位、如何做幂等/兜底(CAS/版本号)
  2. RocketMQ:MessageQueue 异常、消息丢失排查与补偿

科创信息

  1. 迁移(方案、节奏、回滚)
  2. 组长如何提高产能/研发效率(流程/规范/工具/评审/自动化)
  3. agent 开发经验
  4. 国产化/信创相关经验
  5. 安全相关经历
  6. 聚合根之间通信:领域事件/最终一致性

益丰(一面)

  1. 业务体量
  2. 单租户单表新增数据(约 3w/日)、存量(约 1000 万)
  3. SQL 优化:深度分页、避免 select *、JSON/TEXT 字段存储与查询代价
  4. 索引不命中场景:联合索引、order by id 的坑
  5. 联合索引:order by id + 0、强制指定索引(hint)
  6. SpringBoot/Cloud 版本与最新特性
  7. 事务管理与常见坑
  8. RocketMQ
  9. 顺序消息
  10. 消息挤压处理

科创(二面)

(待补充:你当前汇总里没有落下具体问题,可从 科创2面.md 抽取补齐)


益丰(二面)

  1. 代码质量保障(规范、review、测试、可观测性与发布回滚)
  2. 事务默认隔离级别
  3. Redis:集群高可用/为什么快(一致性 hash/零拷贝/事件驱动 Reactor)
  4. 智能体
  5. Netty
  6. RocketMQ 事务消息(二阶段提交失败处理、版本 4.9)
  7. 本地事务表(Outbox)设计
  8. 偏业务还是偏技术,为什么

货拉拉

  1. MySQL / Redis 规范
  2. 大 key 定义与治理
  3. Redis hash 使用场景,为什么不用 string
  4. Netty 连接数限制:单点 vs 集群
  5. 集群长连接在线监控、多通道(userId + deviceId)如何建模(hash/bitmap/set)
  6. MyBatis-Plus 批量:批量插入/更新性能、更新条数统计
    • 字段未变化时 update 返回值;updateTime 是否变化
  7. 包装类型 vs 基本类型使用场景
  8. Integer a=100; a==100 的结果与原因(自动拆箱/缓存池)
  9. final 修饰的 JDK 类(如 String),字符串常量池与重新赋值
  10. 字符串拼接方式与日志打印:占位符 vs 拼接
  • 如何把业务 ID 放入日志头(MDC/Logback pattern)
  1. 下划线字段与驼峰映射:Jackson/Fastjson 配置与注解;string/list 混用兼容(自定义反序列化)
  2. 泛型:使用场景;运行期擦除下如何保留类型信息(TypeReference/ParameterizedType)
  3. 异步聚合:CompletableFuture 阻塞等待、对子任务设置超时
  4. 超时配置:下游 HTTP 超时、MyBatis SQL 超时(全局 vs 单 SQL)
  5. Spring 条件装配:profile、@Conditional/@ConditionalOnProperty/@ConditionalOnMissingBean
  6. Kafka:分区与消费者数匹配;ack 配置;梯度重试(重试框架/延迟队列)
  7. PHP 转 Java:如何保证一致性(对比结果、回放流量、关键中间数据校验)

毒物 / 通用补充

  1. SaaS 如何分表
  2. Milvus/向量检索:流量数据、推荐场景(降低空车率/推荐货单)
  3. MQ 积压处理
  4. 40 亿级数据迁移:事前/事中/事后、数据生命周期、分批迁移、可操作/可回滚
  5. 线程池原理(加强自信与表达)