一、自我介绍 / 经历亮点 / 岗位理解1.你先简单介绍一下你最近的经历,挑项目或实习里你觉得比较有亮点的讲一下。2.你们端智能这块的特征工程,主要是做什么的?3.你们这个项目本身负责采集吗,还是主要做中间处理?4.整个系统设计上大概是怎么分层的?5.业务方怎么定义和注册他们需要的特征?________________________________________二、设备特征缓存优化7.设备特征缓存优化这个需求,是 mentor 提给你的,还是你自己发现的?8.你当时接到这个任务后,是怎么思考和解决这个问题的?9.这个问题为什么会在高并发场景下耗时,它的根本背景是什么?10.你为什么会想到用缓存来解决?11.设备特征是会变化的,那你们怎么处理这个变化?12.为什么要分成 2 秒、10 秒、90 秒这几档?13.网络状态这种高频变化的特征,为什么是两秒?14.如果某些业务对实时性要求极高,比如 0.5 秒级别,你这套缓存怎么适配?15.如果同一个特征在不同业务、不同页面下要求不一样,你怎么设计整套特征供给和消费体系?16.如果不同业务场景对同一特征的刷新频率要求不同,你真正采集和计算时怎么定间隔?17.只要有人要求最短间隔,是不是整个系统都得按最短间隔跑?18.你觉得这个体系怎么设计,才能满足这种差异化需求?________________________________________三、特征计算触发 / 业务隔离 / 平台治理19.你们怎么限制特征计算不要无限制执行?20.如果一个事件可能触发很多脚本同时运行,你怎么管控?21.如果要限制并发执行任务数,那这些任务怎么选、谁优先?22.如果不同业务都说自己的任务重要,你作为平台怎么治理?23.这个治理过程以前可能靠人 review,那现在这个时代,你觉得还需要人一个个看吗?24.如果想用 AI 去替代人工 review 算法包,你觉得应该怎么做?25.如果让 AI 判断什么是合理、什么是不合理,你觉得提示词 / 规则里应该包含哪些信息?26.哪些特征或脚本应该被重点审查?高频的、复杂的、还是孤立的?为什么?________________________________________四、端上开发经验 / AI 在开发中的使用27.你在项目里面主要做的是 C++,对吧?28.除了 C++ 性能优化,你平时接的小需求是否也会涉及 iOS 和安卓两端?29.你们整个开发过程中会用 AI 吗?30.当时你们主要用哪些 AI 编码工具?31.你平时会用国产模型吗?________________________________________五、编程题:带 TTL 的 LRU Cache(允许 AI 辅助)### 题目要求实现一个线程安全的 **LRU + TTL** 本地缓存,请使用 Java 实现一个本地缓存类。### 代码框架```javapublic class LocalCache<K, V> {public LocalCache(int capacity) { }public void put(K key, V value, long ttlMillis) { }public V get(K key) { }public int size() { }}```### 功能要求缓存有最大容量 `capacity`;每个 key 支持 TTL(过期时间);get 时如果 key 已过期,返回 `null` 并删除;插入新 key 时缓存已满:- 先清理已过期元素;- 若仍满,则淘汰最近最少使用(LRU)的元素;如果 key 已存在,更新 value、过期时间,并刷新其 LRU 状态;需要保证线程安全;说明实现的时间复杂度,并说明如何避免因重复 put 导致过期堆中的旧记录误删新值。32.你先看一下这个题,先不用急着让 AI 出答案,你觉得它给出的方案方向有问题吗?33.它这里为什么要引入 version?34.version 是怎么避免旧数据误删新数据的?35.为什么这里要用小顶堆?36.小顶堆在这个设计里的作用是什么?37.如果堆里一共有 N 个元素,其中 K 个过期了,清理这 K 个元素的时间复杂度是多少?38.如果 K 很大,比如长时间没人请求、结果大量 key 一起过期,这个方案会有什么问题?39.在这种极端情况下,get / put 还能保持接近 O(1) 吗?40.如果你现在重新设计这个方案,你会怎么做?41.如果不用 AI,你最基础的思路是什么?42.纯 hash map + 双向链表 能不能先把 LRU 做出来?43.如果只在 value 里记录过期时间,会有什么局限?44.为什么说一旦加了小顶堆,就会把一致性和复杂度问题带进来?