面灵AI→

平安科技后端开发一面:实习深挖、Copy on Write 与设计模式

轮次
一面
时间
2026-09
来源
牛客网

《面试题目》

自我介绍

  1. 自我介绍

实习

  1. 目前实习是还在继续,还是已经结束了?
  2. 暑期转正情况如何?
  3. 做 Agent 开发时,是只做后端,还是也涉及其他端?
  4. 在这段实习经历中,你觉得做的最复杂的一块业务/功能是什么?
  5. 介绍一下实习中的 Copy on Write 优化

项目

  1. 策略模式和工厂模式的区别?
  2. 你的主要技术栈是 C++,为什么没有考虑往底层方向走,而是考虑了应用层(AI 方向)?
  3. CS188、CMU 15-213 是自学的吗?学到了什么程度?

其他

  1. 意向工作城市是哪里?

《参考解析》

  1. Copy on Write 优化要按「省了什么 + 代价是什么」讲:写时复制的核心是共享读、分离写——多个持有者共享同一份数据,只有真正发生修改时才拷贝出一份私有副本,因此读多写少的场景能省下大量内存与拷贝开销。概念层面要能对上 fork 的地址空间复制(子进程写哪页才拷哪页)和 C++ 容器/字符串历史上的 COW 实现;代价是引用计数与判断带来的开销、并发下计数必须原子、以及迭代器与写操作混用时容易出隐蔽 bug(这也是 C++11 之后 std::string 禁止 COW 的原因)。讲自己那次的收益时给可量化的口径:内存峰值降了多少、拷贝次数或耗时降了多少。

  2. 策略模式与工厂模式的区别是「意图」不同,不是结构不同:工厂模式解决「对象怎么创建」——把 new 的细节收进工厂,调用方只依赖抽象;策略模式解决「运行时怎么换算法」——把一组可互换的行为封装成策略,由上下文持有并委托执行。两者的联系是常配合使用:用工厂(或 Spring 容器)按配置产出具体策略。答题时给一个自己项目里的例子,再说什么时候不该用(策略过多会让类爆炸、简单 if 分支别过度设计),比背定义有说服力。

  3. 「C++ 为什么转 AI 应用层」这题要答成一条连续的技术路径:C++ 的优势是性能与底层控制,而 AI 应用侧的真实瓶颈往往在链路编排、并发、内存与推理服务的工程化上,这些恰好是 C++ 能直接发挥的地方;再给出你的实际动作(做过 Agent 后端、写过工具链、补过哪些课)。避免两个雷区:贬低底层方向,或者把转方向说成「底层太难」。

  4. 被问自学课程(CS188、15-213 这类)要给出深度证据:说清怎么学的(跟课、做 lab、读源码)、做到什么程度(哪些 lab 全过、哪些没做完)、学到了什么能迁移的东西(比如 15-213 的数据表示、汇编与内存层次,CS188 的搜索与概率推断),再举一个用它解决实际问题的例子。诚实说明没做完的部分反而加分,含糊的「都学了」一追问就崩。

  5. 实习类问题提前准备一条主线:实习是否结束、能否转正这类问题照实说,但要主动给下一步的计划;「最复杂的一块」用 STAR 讲清背景、你的动作和结果(要有数字);「只做后端还是多端」这题要如实描述边界,并说明你怎么跟前端/算法协作——面试官在意的不是范围多大,而是你有没有把接口与责任划清楚。