Java后端
·04-13 20:25
南京小厂
1.自我介绍
2.实习的内容
答:责任链重构权限认证
3.为什么要用责任链模式,你这个需求可以用策略模式吗?你为什么要用责任链模式,这个和if判断有什么区别吗?
答:可以的,实习时间较早,当时还没接触到策略模式。当时用责任链模式是为了后面好拓展,万一需要增加认证角色等。
4.那你现在认为策略模式和责任链模式相比有什么优点
答:好维护,好拓展,这里角色太少,不适合用责任链。
5.如何实现单例模式?
答:双检锁单例模式和JAVA枚举实现单例。
6.拦截器应用场景
答:token认证,websocket认证,权限认证。
7.如何统一记录接口响应时间?
答:使用AOP切面编程,两种实现方式,记录时间并写入日志。
8.如何实现请求链路跟踪
(没遇过这个问题,有点懵)
自定义一个命名过的线程去处理请求,可以在日志中看到该请求的日志。
(面试官说Lombok你了解过吗)
经常用,但是我没有用过这个功能
9.如何避免多实例重复执行定时任务?
(卡壳了一下,没遇过这个问题)
答:在某一个实例中实现一个接口,该接口调用定时任务
(面试官提醒我分布式锁)
(恍然大悟,但分布式锁似乎就是答案了,我还能说些什么)
redis分布式锁会遇到redis单例不安全的问题,可以用red lock解决,然后各个实例去抢锁执行任务,如果有实例执行完毕,将状态改为已完成,其他实例抢到后不再执行。
10.如果我很多定时任务的方法怎么办
可以使用代理类,在代理中把抢锁和释放锁的逻辑写好
(面试官说可以把逻辑写到注解里,要用的时候添加注解)
11.如何优化Excel表的大量数据导入
答:可以使用MySQL的批量处理,数据量大就分批进行。
12.那你如何调用mybatis实现这个功能?
(懵了,第一是我没咋用过mybatis,第二是就算用了我也没遇到过这个需求,好像背过这个问题但我忘了)
答:没遇到相关需求,对这方面的API不太熟悉。
13.如何优化慢sql
答:检查是否走索引,没走的话就进行调整,走的话还慢,就可能是大量回表,或者网络太慢,或者explain估计错误
(这里忘记最开始的问题是调优了,我还在按照原因回答,然后面试官直接接着问了)
14.explain主要看哪些数据
开始吟唱(终于顺一点了)
15.项目中遇到的困难和解决方案
云图库的第三方接口返回颜色中丢零,在网上搜到补零算法
16.ai海龟汤社交好友平台的实现和遇到的问题
使用的是火山引擎大模型(豆包和DeepSeek)
初期方案:全量发送历史对话,会导致token激增
优化方案:使用Redis向量数据库存储线索
查询时先向量化问题,检索最相关5条线索
保证token消耗恒定,且准确度与效率兼顾
17.这个方案你是怎么想到的
遇到问题,解决问题,之前token消耗太大了,没法上线,在网上搜索解决方案
3
5
分享
操作
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
