1)用过哪些设计模式,手写一个(除单例);
工厂模式,门面模式(个人有点像service层),代理模式
2)springmvc的核心是什么,请求的流程是怎么处理的,控制反转怎么实现的;
1 ,用户发送请求至前端控制器DispatcherServlet
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器
3,处理器(过滤器)如果有,返回DispatcherServlet处理,没有则返回404页面
4,DispatcherServlet调用 handlerAdapter 处理器
5,handlerAdapter 适配处理器(controller) 后端处理器
6,controller 处理完成返回你modelView
7,hendlerAdapter 将controller 返回的结果
返回给DispatcherServlet
8,DispatcherServlet 将modelAndView传给viewReslover
9,ViewReslover 解析返回具体的view
10,DispatcherServlet响应用户
3)spring里面的aop的原理是什么;
IOC(反转控制):对成员变量的赋值控制权从代码中转到配置文件中;
AOP:Aspect(切面) Oriented(面向) Programming(编程),面向切面编程
4)cookie和session的区别,分布式环境怎么保存用户状态;
1,cookie保存在客户端,session 保存在服务端。
2,cookie保存的是字符串,session 保存的是对象。
5)一段栈溢出、堆溢出的代码;
int num = 0
private void softMothod(){
num ++;
this.softMothod();
}
private void list (){
List lis = new ArrayList();
while(true){
list.add(5*1024*1024)
}
}
6)ThreadLocal可以用来共享数据吗;
不可以共享,线程独占的,每个线程都有一个备份。
7)mysql的语句优化,使用什么工具;
7)mysql的语句优化,使用什么工具;
使用工具:profiling
1,开启profile参数:set profiling = 1;
2,执行Query: select count(*) from t_test
3,查看系统profile记录 :show profiles;
4,查看详情:show profile cpu ,block io for query 6
使用工具:profiling
1,开启profile参数:set profiling = 1;
2,执行Query: select count(*) from t_test
3,查看系统profile记录 :show profiles;
4,查看详情:show profile cpu ,block io for query 6