招银云创后端一面:文件存储、事务与 Redis 持久化
- 轮次
- 一面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 简历项目主要使用 Python,你是否用过 Java?
- 项目为什么选择 Spring AI,主要难点是什么?
- 项目接入了什么大模型?
- 用户上传的文件怎样保存,分析失败后怎样处理原文件?
- 是否了解文件存储服务器?
- Java 面向对象的三大特性是什么?
- 重写与重载有什么区别?
- JVM 内存区域怎样划分,哪些变量位于栈中,栈上的变量或方法一定线程安全吗?
- MySQL 常用存储引擎有哪些,各有什么特点?
- 事务的四大特性是什么?
- 编写 MySQL 语句需要注意哪些问题?
- SQL 查询的逻辑处理顺序是什么?
- Redis 有哪些持久化方式,各有什么优缺点,生产环境怎样选择?
- 你了解哪些消息队列?
- 研发、产品和测试对同一个问题理解不一致时,你会怎么处理?
- 未来一到三年的职业规划是什么?
《参考解析》
文件保存与分析任务分开讲
原始文件、解析结果和任务状态分别保存。上传成功后记录文件标识与所属用户,后续分析通过任务引用原文件。失败时留下错误和可重试状态,按约定的保留期限处理原文件;不能把“分析报错”直接等同于“上传文件无效”。读取和下载也要检查访问权限。
局部引用不等于对象私有
方法内的局部变量随线程栈帧保存,但引用指向的对象仍可能被多个线程共享。判断线程安全要追到对象是否逃逸、是否存在并发修改,以及用了什么同步手段。只回答“放在栈里,所以安全”会漏掉共享对象。
SQL 逻辑顺序与实际执行计划要区分
理解查询可以从 FROM 和 JOIN 开始,接着看 WHERE、GROUP BY、HAVING、SELECT、ORDER BY、LIMIT。数据库优化器会选择实际访问路径,不能把这套逻辑顺序当成逐行执行的物理步骤。聚合前的过滤与聚合后的过滤不同,WHERE 和 HAVING 的职责也因此不同。
RDB 与 AOF 的取舍
RDB 保存某个时刻的数据快照,AOF 记录写操作以便重放。比较时要同时看可接受的数据丢失窗口、恢复耗时、磁盘与重写开销。持久化不能替代备份;是否能恢复,还要靠实际恢复演练确认。