常见面试题总结
SQL优化
Shiro工作过程
AOP工作过程
Nginx工作流程
Kafka工作过程
Hadoop工作过程
Redis内存淘汰
redis参数优化
MapReduce编程模式
SpringIOC
接口和抽象类
线程池
Mybatis如何获取主键
#与$的区别
相同点:
- 都是在SQL语句中动态传入的参数
不同点:
#{XX}
- 传入的是字符
- 会经过预编译,能够防止SQL注入攻击
${XX}
- 传入的是数值
- 不经过预编译,无法防止SQL注入
- 如果传入的是数据库表字段,就用$
- order by
如何防止表单提交
1.表单提交出现的情况:
- 多次点击提交按钮
- 多次刷新页面
- 用postman多次恶意攻击网站
2.表单多次提交的后果:
表单提交会造成数据重复,增加服务器压力
3.解决方案:
- 前端:
前端js检查到点击了提交按钮后,将该按钮禁地
- PRG模式:
Post-Redirect-Ger开发模式
SpringBean的生命周期
Nginx反向代理实现
Nginx负载均衡实现
Mybatis逆向工程的生成
FLume工作过程
Spring IOC
线程(锁+高并发控制+线程状态)
SPringCloud和Doubbo的区别(OSI七层协议)
Spring事务控制
Hadoop 核心配置文件 集群搭建方式
Servlet 调用过程
JSP 九大内置对象
:
Redis分布式锁,数据结构
流量统计指标
流量统计项目架构业务流程
商城业务流程
Shiro的工作流程:
Controller获取到用户信息后将这些信息保存在token中
通过该token执行login方法,将token交给SecurityManager
SecurityManager再将该token交接给认证管理器
认证管理器再交给我们自定义的Realm去数据库比对数据实现登录功能并返回用户信息
权限管理器对realm返回的用户信息进行身份认证
AOP工作过程:
基于注解开发的redis缓存层AOP的设计:
1.连接