java面试题总结

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
 

 

posted @ 2018-03-19 16:37  andys  阅读(212)  评论(0编辑  收藏  举报