携程后端Agent开发一面面经
- 轮次
- 一面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 平时使用什么 AI coding 工具?如何提升 Cursor 或 Codex 的出码质量?
- 多线程执行
count++1000 次结果小于 1000,为什么?如何修改? String常量池三连中,s1 == \"abc\"、new String和s1 + \"\"的结果是什么?第三个一定为true吗?- 浏览器输入域名并回车后发生什么?请从网络协议分层视角说明。
- 公网传输的数据包没有 HTTP header 能传输吗?三次握手时如何传输?
《参考解析》
- 提升 AI 出码质量:把接口、输入输出和约束写清楚,按小任务分步提供最小必要上下文;发现问题时给出输入、预期输出与实际输出,让工具迭代修正,并通过编译、测试和代码审查验证结果。
count++丢失更新:它包含读、加一、写回三个步骤,两个线程可能读到同一个旧值,后写入的结果覆盖先写入的更新。可用synchronized保护临界区,或使用AtomicInteger.incrementAndGet()。- 常量池比较:字面量通常指向常量池,
new String创建新对象;编译器是否将s1 + \"\"折叠为常量取决于表达式是否为编译期常量,运行期拼接则可能产生新对象,不能仅凭表面写法断言相等。 - 分层请求:先解析 DNS,再建立 TCP(HTTPS 还要完成 TLS),随后按 HTTP/应用层格式发送请求;各层只需处理自己的首部和载荷。没有 HTTP header 仍可传输 TCP/IP 数据,但对端无法按 HTTP 语义解析。