面试形式:微信视频面试
一面
- 简单自我介绍(包括项目)
- 问了下我实验室情况,由于面试官是北邮的(通信很强),简单问了下我文章的事情
- Spring Aop的实现原理?(回答是使用了代理模式)你还知道哪些框架使用了代理模式?
- 静态代理和动态代理的区别?
- 看你项目里面使用了httpclient,那么httpclient是怎么配置的呢?
- Tomcat IO优化?(不会。。。)
- http1.0和http2.0的区别?(我回到是1.0里面的长连接一次连接中的多个请求串行执行,2.0里面可以并发执行),然后面试官问我串行执行和并发执行是什么意思?(解释了下,他说我没理解这两个的区别,顺便举了个栗子,说要是我先打开一个网页,再打开一个,岂不是不行?其实我没听明白,也不确定前一个网页要是没刷出来,后面那个到底能不能刷出来)
- 实际场景题:一个签到系统,签到有奖,连续签到的话奖励会递增,怎么实现连续签到判断?(我说的是redis打时间戳来实现,用户id作为key值,时间戳为value,其中value里面是一个list集合,关键在于怎么判断是连续一天还是间隔了一天,可以将上一个时间戳计算还有多久一天结束,记为t0,接着新添加的时间算出间隔时间,记为T,将T-t0,与24进行比较即可)
- 当有很多用户同时进行签到,那么会有大量数据在redis数据库里面,该怎么缓解这种压力?(我开始回答是利用red