1. 为什么要走 java 这条路2. 是否有考研计划3. 自学的学习路线是怎么样的4. 平时学习和自学的时间是怎么安排的5. 介绍项目6. 浏览器发起请求到后端发生校验整体的执行流程是怎么样的7. sa-token 进行注解式权限校验的原理是怎么样的8. 假设现在有一个请求是需要将一个图片共享出去,给一个没有登陆的人来访问,你会考虑怎么实现,并且限制共享的时间为一个小时,基于你现有的权限框架,你会怎么扩展9. 假设我在 59 分的时候拿到你共享出来的这个链接了,61分的时候还能继续用吗,结合你刚说的 satoken 框架的token 刷新机制来说一下10. 你说你选择使用临时token 的方案,如果每个用户都是用这个临时token, 那么会不会显得太笨重了,你有没有什么其他的方案11. 你说你使用了模板方法和门面模式,你的抽象类和子类之间的方法都有哪些,你的抽象类的骨架是怎么样的,有哪些抽象方法,作用分别是什么12. 为什么没有考虑不直接在前端上传文件13. 你说你通过手动事务的方式来解决云存储上传成功但是数据库更新失败从而产生孤儿文件的情况,你通过回滚来删除云存储已经上传大的文件信息,那么这样对于用户体验是否友好,用户明明点了上传,但是提示上传失败,你可以考虑怎么优化,我答的用重试机制来代替回滚14. 断点续传是怎么做的,在网络不好的时候是怎么解决的15. 在你当初设计者模块的时候是怎么考虑的,有没有从用户的角度去思考,我答了异步上传来优化体验,又追问要是前端用户刷新了浏览器,那文件上传不就断开了吗,这里确实没有考虑到16. 前面你提到了 redis key 的过期策略,讲一下 redis 中过期key 是怎么被删除的17. 当时发现首页图片加载慢的瓶颈是在哪里,怎么定位到的18. 为什么把图片数据缓存在了jvm 缓存或者是 redis 中,二进制的数据不适合做缓存,你有考虑过吗19. 假设现在你在写代码的过程中突然告诉你缓存不能这么用,你会如何调整或者重构你的方案,你的优化思路是什么20. 当时为什么选择使用云存储来存储图片而不是使用数据库来存储数据信息21. 多人协同编辑是怎么实现的,是否可以查看编辑轨迹,是否支持回滚,如果要你支持,你怎么实现22. 是否每一次编辑都会度图片进行存储,答只有最后一个人退出编辑才会将数据存回云存储,追问怎么知道哪一个人是最后一次退出编辑的,怎么监听的,答通过 websocket 的断开连接回调函数23. 你的项目是否支持水平扩展24. mysql 什么是最左匹配原则25. 慢 sql 排查思路26. mybatis 如何防止 sql 注入27. 分页查询中mybatis 是如何映射到实际的sql 语句的28. 在使用框架的时候是否有看过源码,对哪些源码印象比较深刻29. 算法 LRU,本地 ide,15分钟内完成全程一个半小时,结束后一小时约二面