去哪儿

后端开发工程师(AI / Agent 方向)面经

完整信息

20 条问法 · 20 道题

本篇目录
1.请你简单做个自我介绍? 2.排查线上JVM的CPU过高内存泄漏问题时你会用到哪些核心工具和命令? 3.你刚才提到会用jstack查看高CPU线程的栈信息,那你拿到占用CPU最高的线程ID后,具体是怎么和jstack输出的内容对应定位问题代码的? 4.Java中对共享变量做无锁并发处理有哪些常用方式?请说明CAS的实现逻辑? 5.你提到了CAS存在ABA问题,那在实际业务开发中,你会用什么方案解决这个问题? 6.你刚才提到了带版本号的原子类,那你能说下AtomicStampedReference的compareAndSet方法具体需要传入哪几个参数吗? 7.请你讲一讲Redis的RDB和AOF两种持久化机制的核心原理?以及它们各自的适用场景是什么? 8.你提到RDB做BGSAVE时会通过fork子进程来生成快照,那如果在fork子进程之后,快照生成完成之前,主进程收到了新的写请求修改了内存数据,Redis是怎么保证生成的RDB文件能对应fork时刻的完整内存快照的? 9.你刚才提到AOF记录的是每一次写命令,那如果Redis对同一个key连续做了1,000次INCR操作,AOF文件里会记录1,000条INCR命令,Redis是通过什么机制来避免这类冗余命令导致AOF文件过大的? 10.请你介绍Netty的线程模型,以及使用Netty实现HTTP服务端客户端交互时的完整线程流转过程? 11.你刚才提到了通用的HTTP网络请求流程,那你能说下Netty中reactor主从线程模型里boss线程组和worker线程组各自的核心职责是什么吗? 12.设计一个订单超时自动取消并释放库存的系统,支持每秒写入1万条订单,超时时间支持自定义你会怎么实现? 13.你刚才提到用Rocketmq的延时消息,结合死信队列来实现核心流程,那在订单支付成功的场景下,你要怎么避免已经支付的订单被超时取消逻辑错误处理呢? 14.你刚才提到Rocketmq支持自定义超时时间,那Rocketmq开源版本默认的延时消息是固定延时等级的,你要怎么实现任意自定义时长的超时消息投递呢? 15.请分享一个你做过的最具技术挑战,最值得深入探讨的后端开发项目,它要解决什么问题,核心难点在哪,你又是如何攻克的? 16.你刚才提到做了消息入库兜底手动提交offset,生产者重试这些可靠性方案,那最初最朴素的直接转发消息依赖Rocketmq原生可靠性的简单做法,具体是在什么场景下失效才迫使你额外加了这些兜底机制? 17.你当时是通过哪些具体的指标或者异常现象,测量并确认到直接转发的方案确实存在消息丢失可靠性不达标的问题,而不是凭直觉预判风险就直接上了这些兜底方案? 18.请分享一段你最近半年内主动学习AI工具或大模型相关技术,并尝试落地到实际开发场景的真实经历,包括你做了什么,最终落地效果如何? 19.你刚才提到选择了Codex这款agent coding工具来完成这次全栈需求开发,那你当时做工具选型时的具体考量是什么? 20.你刚才提到在整个开发流程里用到了Chrome插件,飞书MCP,本地代理,热启动这些配套配置,这些配置里哪些是你亲手完成搭建的? ps:上周面了,这周刚刚复盘,刚刚收到9/6号的去哪儿旅行笔试
本篇目录
  1. 01
  2. 02
  3. 03
    追问
    你刚才提到会用jstack查看高CPU线程的栈信息,那你拿到占用CPU最高的线程ID后,具体是怎么和jstack输出的内容对应定位问题代码的?
    上一问 ↑
  4. 04
    Java中对共享变量做无锁并发处理有哪些常用方式?请说明CAS的实现逻辑?
  5. 05
    追问
    你提到了CAS存在ABA问题,那在实际业务开发中,你会用什么方案解决这个问题?
    上一问 ↑
  6. 06
    追问
    你刚才提到了带版本号的原子类,那你能说下AtomicStampedReference的compareAndSet方法具体需要传入哪几个参数吗?
    上一问 ↑
  7. 07
    请你讲一讲Redis的RDB和AOF两种持久化机制的核心原理?以及它们各自的适用场景是什么?
  8. 08
    追问
    你提到RDB做BGSAVE时会通过fork子进程来生成快照,那如果在fork子进程之后,快照生成完成之前,主进程收到了新的写请求修改了内存数据,Redis是怎么保证生成的RDB文件能对应fork时刻的完整内存快照的?
    上一问 ↑
  9. 09
    追问
    你刚才提到AOF记录的是每一次写命令,那如果Redis对同一个key连续做了1,000次INCR操作,AOF文件里会记录1,000条INCR命令,Redis是通过什么机制来避免这类冗余命令导致AOF文件过大的?
    上一问 ↑
  10. 10
    请你介绍Netty的线程模型,以及使用Netty实现HTTP服务端客户端交互时的完整线程流转过程?
  11. 11
    追问
    你刚才提到了通用的HTTP网络请求流程,那你能说下Netty中reactor主从线程模型里boss线程组和worker线程组各自的核心职责是什么吗?
    上一问 ↑
  12. 12
    设计一个订单超时自动取消并释放库存的系统,支持每秒写入1万条订单,超时时间支持自定义你会怎么实现?
  13. 13
    追问
    你刚才提到用Rocketmq的延时消息,结合死信队列来实现核心流程,那在订单支付成功的场景下,你要怎么避免已经支付的订单被超时取消逻辑错误处理呢?
    上一问 ↑
  14. 14
    追问
    你刚才提到Rocketmq支持自定义超时时间,那Rocketmq开源版本默认的延时消息是固定延时等级的,你要怎么实现任意自定义时长的超时消息投递呢?
    上一问 ↑
  15. 15
    请分享一个你做过的最具技术挑战,最值得深入探讨的后端开发项目,它要解决什么问题,核心难点在哪,你又是如何攻克的?
  16. 16
    追问
    你刚才提到做了消息入库兜底手动提交offset,生产者重试这些可靠性方案,那最初最朴素的直接转发消息依赖Rocketmq原生可靠性的简单做法,具体是在什么场景下失效才迫使你额外加了这些兜底机制?
    上一问 ↑
  17. 17
    追问
    你当时是通过哪些具体的指标或者异常现象,测量并确认到直接转发的方案确实存在消息丢失可靠性不达标的问题,而不是凭直觉预判风险就直接上了这些兜底方案?
    上一问 ↑
  18. 18
    请分享一段你最近半年内主动学习AI工具或大模型相关技术,并尝试落地到实际开发场景的真实经历,包括你做了什么,最终落地效果如何?
  19. 19
    追问
    你刚才提到选择了Codex这款agent coding工具来完成这次全栈需求开发,那你当时做工具选型时的具体考量是什么?
    上一问 ↑
  20. 20
    追问
    你刚才提到在整个开发流程里用到了Chrome插件,飞书MCP,本地代理,热启动这些配套配置,这些配置里哪些是你亲手完成搭建的?
    上一问 ↑

相关公司