岗位:阿里巴巴-高德-杭州-信息工程-Java后端笔试:3月14日,AK一面:3月20日,面的不错二面:3月26日,面的不错HR面:4月1日,等待一个OC,求你了德子OC:4月2日,发了意向,约了4月25日入职---------------------------------------一面:一个温柔的女面试官,问了一下我在美团智能助手RAG。提了一个她们现在业务中遇到的场景:如何根据海量语音聊天对话记录,分析特定问题的结论。例如给出保险销售代表和客户语音电话记录,如何用ChatGPT从日志中准确识别“用户是否想买保险”,“买哪个保险产品”。我提出了一种分治+局部意图分组+多级索引的策略。面试官觉得答得比较底层,看得出来挺满意的。又问了另一个场景题,智能助手回答问题时效性如何保证,我给出的策略是提高粗排和精排的阈值,减少召回日志数。如果因为高阈值导致没有召回结果,再根据用户意图匹配兜底回复,并用日志记录下本次失败消息。接下来聊了聊领域驱动设计,如何战略设计,如何划分实体和聚合根,限界上下文边界如何划分。美团的项目里是怎么做的。最后问了问我是怎么学习新领域知识的(我给他看了我手机上总结的800多道八股文的题)。反问:为啥不问我八股文不给个算法题,她说觉得我本科成绩好,笔试成绩不错,就不问了。二面:一个沉默的中年男性,感觉像高p。问快速排序的原理,最好和最坏的时间的case,如何优化避免最坏情况。问常见的JUC类,HashMap和ConcurrentHashMap,LongAdder对CAS的优化,AQS原理,双向链表的插入和删除,如何设计一个高并发的双向链表(答了如果要求最终一致性用写时复制,就像CopyOnWriteArrayList。如果追求强一致性用synchronized,如ConcurrentHashMap)。然后问了一下ThreadLocal原理。问我StackOverflow出现场景,和OOM的区别。如何排查OOM(答了看gc.log,用jmap或JVM启动参数保存堆转储文件,Mat分析,顺便答了一下JVM调优年轻代和老年代的策略,内存泄露的场景,回答模式用的美团的SOP)。最后问了领域驱动设计,如何写出高质量代码。