面灵AI

携程后端Agent开发一面面经

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

《面试题目》

  1. 平时使用什么 AI coding 工具?如何提升 Cursor 或 Codex 的出码质量?
  2. 多线程执行 count++ 1000 次结果小于 1000,为什么?如何修改?
  3. String 常量池三连中,s1 == \"abc\"new Strings1 + \"\" 的结果是什么?第三个一定为 true 吗?
  4. 浏览器输入域名并回车后发生什么?请从网络协议分层视角说明。
  5. 公网传输的数据包没有 HTTP header 能传输吗?三次握手时如何传输?

《参考解析》

  1. 提升 AI 出码质量:把接口、输入输出和约束写清楚,按小任务分步提供最小必要上下文;发现问题时给出输入、预期输出与实际输出,让工具迭代修正,并通过编译、测试和代码审查验证结果。
  2. count++ 丢失更新:它包含读、加一、写回三个步骤,两个线程可能读到同一个旧值,后写入的结果覆盖先写入的更新。可用 synchronized 保护临界区,或使用 AtomicInteger.incrementAndGet()
  3. 常量池比较:字面量通常指向常量池,new String 创建新对象;编译器是否将 s1 + \"\" 折叠为常量取决于表达式是否为编译期常量,运行期拼接则可能产生新对象,不能仅凭表面写法断言相等。
  4. 分层请求:先解析 DNS,再建立 TCP(HTTPS 还要完成 TLS),随后按 HTTP/应用层格式发送请求;各层只需处理自己的首部和载荷。没有 HTTP header 仍可传输 TCP/IP 数据,但对端无法按 HTTP 语义解析。