三场 Java 面试考点整理:缓存、权限与 RAG
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 等号比较与 equals、深拷贝与浅拷贝、重载与重写分别有什么区别?
- Spring 事务何时失效,Controller 与 RestController 有什么区别?
- Redis 常见数据结构适合什么业务,Lua 脚本有什么用途?
- SQL 内连接和外连接有什么区别?
- 为什么使用 B+ 树,非叶子节点保存什么?
- 聚簇索引和非聚簇索引有什么区别,MVCC 怎样工作?
- 项目如何分工和部署,为什么采用当前实例数量?
- 怎样接入 SDK,什么是 CAS,为什么需要多模态能力?
- Redis 的 SDS 是什么,缓存一致性与多级缓存如何实现?
- 如何优化发布过程,为什么选用 MinIO?
- RAG 混合检索如何实现,采用了什么 Agent 框架?
- 使用过哪些 Elasticsearch 版本、容器工具和国产软硬件?
- 面对完全陌生的场景,你会怎样开展工作?
《参考解析》
混合检索
关键词检索擅长精确术语,向量检索能找到表达不同但语义接近的内容。可以分别召回,再按排名融合或重排模型合并结果。评估时检查问题是否命中正确片段、引用是否支持回答;不能只看模型最后说得是否流畅。
多级缓存
本地缓存读取快,但每个实例各有一份;共享缓存便于复用,也有网络与故障成本。先明确允许多长时间的不一致,再选择过期时间、更新通知和版本校验。更新数据库成功后怎样使旧副本失效,比画出缓存层数更值得讲清楚。
内连接和外连接
内连接只保留匹配行,左外连接还保留左表未匹配的行并把右表列补为空。对右表的过滤条件放在 ON 还是 WHERE 中,可能改变是否保留这些空值行,写 SQL 时要拿未匹配样例检查结果。