乌鸫科技Java岗社招一面面经
《面试题目》
- 项目一(银行项目):海量数据 Excel 文件导入和额度扣减是怎么实现的?
- 项目二(RAG 学习项目):三层缓存架构是怎么设计的?项目中的 RAG 处理流程?消息队列异步解耦和线程池隔离是如何做的?
- 项目三(电商优惠券项目):数据一致性解决方案是什么?
- AI Coding 在工作中的占比是多少?对 AI 编程工具的看法?
《参考解析》
- 海量数据 Excel 导入优化:大批量数据导入应避免一次性加载整个文件到内存,可采用流式解析(如 EasyExcel 的逐行读取)+ 分批入库(每积累一定数量记录批量
INSERT)的方式控制内存占用;额度扣减类操作需要保证并发安全,通常结合数据库乐观锁(版本号)或分布式锁防止并发扣减导致的超额问题。 - 三层缓存架构设计:典型结构为本地缓存(如 Caffeine,速度最快但容量有限、多实例不共享)+ 分布式缓存(Redis,容量大、多实例共享)+ 数据库(兜底持久化),请求优先查本地缓存,未命中查 Redis,都未命中才查数据库并逐层回填,可大幅降低对下层存储的访问压力。
- 消息队列异步解耦与线程池隔离:将非核心链路(如通知、日志、统计)通过 MQ 异步化处理,避免拖慢主流程响应时间;线程池隔离指为不同业务/不同优先级的任务分配独立的线程池,防止某个耗时任务或异常任务耗尽公共线程池资源,影响其他业务的正常处理(类似舱壁隔离模式)。