Java面试题总结

Wesley13
• 阅读 630

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

点赞
收藏
评论区
推荐文章
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
执键写春秋 执键写春秋
3年前
Spring MVC的原理
SpringMVC的工作流程:(1)客户端发起HTTP请求:客户端将请求提交到DisPatcherServlet(前端控制器)【所有的请求都有经过它来统一分发,在DispatcherServlet将请求分发给SpringController之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。】。控
Wesley13 Wesley13
3年前
Java设计模式之三种工厂模式
工厂模式实现了创建者和调用者的分离,实现了更好的解耦。详细分类:1)简单工厂模式(静态工厂模式);2)工厂方法模式;3)抽象工厂模式面向对象设计的基本原则:1)      OCP(开闭原则,OpenClosedPrinciple):一个软件的实体应当对扩展开放,对修改关闭。2)      
Wesley13 Wesley13
3年前
JAVA设计模式之单例设计模式
    单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。  在JAVA中实现单例,必须了解JAVA内存机制,JAVA中实例对象存在于堆内存中,若要实现单例,必须满足两个条件:  1.限制类实例化对象。即只能产生一个对象。
Wesley13 Wesley13
3年前
Spring3 MVC详解
DispatcherServlet 前置控制器 使用SpringMVC,配置DispatcherServlet是第一步。DispatcherServlet是一个Servlet,所以可以配置多个DispatcherServlet。DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,S
Easter79 Easter79
3年前
SpringMVC第一天HelloWorld
1,普通Servlet的流程是通过配置<servlet</servlet和<servletmapping</servletmapping来拦截请求交给对应的Servlet来处理使用SpringMVC需要配置一个SpringMVC自带的Servlet,DispatcherServlet,使用他来拦截请求交给SpringMVC处理 we
Easter79 Easter79
3年前
SpringMVC中url映射到Controller
SpringMVC也是一种基于请求驱动的WEB框架,并且使用了前端控制器的设计模式。前端控制器就是DispatcherServlet控制器,只要满足web.xml文件中的【urlpattern】的规则,这个请求就会交给这个前端控制器(DispatcherServlet),然而前端控制器在收到请求后自己不进行任何处理,根据相应的【URL的映射规则】委托给其他
Easter79 Easter79
3年前
SpringMVC的工作原理图
SpringMVC的工作原理图:!(https://oscimg.oschina.net/oscnet/7ec9d18341c77418d09131858910f45ec97.jpg)SpringMVC流程1、 用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet收到请求调用Ha
Wesley13 Wesley13
3年前
2、SpringMVC的执行流程
2.1图示!(https://oscimg.oschina.net/oscnet/upa84a47f9ba12dc7770d5cf6a8ddb12e0ff2.png)2.2执行流程1.用户发送请求至前端控制器DispatcherServlet。2.前端控制器DispatcherServlet收到请求后调用处理器映射
Wesley13 Wesley13
3年前
JavaWeb之动态代理解决request请求编码问题
动态代理解决编码问题1.设计模式出现原因:软件开发过程中,遇到相似问题,将问题的解决方法抽取模型(套路)常见设计模式:单例,工厂,适配器,装饰者,动态代理。2.装饰者模式简单介绍谷歌汽车开发场景1.Java定义了汽车开发约定interfaceICar{s