java面试题,每日一总结(3)

1.什么是设计模式?常用的设计模式有哪些?

设计模式是经过前人无数次实践总结出来的,设计过程中可以反复使用的,可以解决特定问题的设计方法

常用的设计模式:

单例模式:分为饥汉模式和饱汉模式

         1.构造方法私有化,让除了自己的类能创建外,其他地方都不能创建。

         2.在自己的类中创建一个单实例(饱汉模式是一出来就创建单实例,饥汉模式是需要的时候才创建)

         3.提供一个方法获取该实例对象(创建时需要进行方法同步)

工厂模式:SpringIOC就使用了工厂模式

代理模式:SpringAOP使用动态代理模式

包装模式(可以不用说)

JavaWEB部分

2.讲一下http get和post的区别

java面试题,每日一总结(3)

3.说一下你对servlet的理解

Servlet(Server Applet),全称Java Servlet,是用java编写的服务器端程序。Servlet是指任何实现了Servlet这个接口的类。

其功能主要在于交互式的浏览和修改数据,生成动态Web内容。Servlet运行于支持java的应用服务器中。

通过继承HttpServlet,重写doGet和doPost方法,或者你也可以重写service方法来完成对get和post请求的响应。

4.简单说一下Servlet的生命周期。(问的较多)

 Serveltyoul有良好的生存期ding定义。包括加载和实例化、初始化、处理请求以及服务结束。这个生存期是由java.servlet.Servlet接口中的init,service,destroy方法表达的。

Servlet启动时,开始加载servlet,生命周期开始。一旦开始加载,servlet就会被服务器实例化,容器就运行init()方法对其进行初始化,每个生命周期中只会执行一次init()方法,无论再多请求,都只有一次。请求到达时运行service(),service方法自动派遣与请求对应的doXXX(doGet,doPost)方法。当服务器要销毁实例前(服务器关闭)调用destroy().

整个周期如下(关键点):

加载Servlet的class---->实例化Servlet----->调用Servlet的init方法完成初始化------>响应请求(Servlet的service方法)----->Servlet容器关闭时(Servlet的destroy方法)

5.Servlet API中forword()和redirect()的区别。 

Forward和Redirect代表了两种请求转发方式:直接转发和间接转发。 

      1)forword是服务器端的转向,而redirect 是客户端的跳转;

      2)forword浏览器的地址不会发生改变,redirect会发生改变;

      3)forword是在一次请求中完成的,redirect是重新发送请求;

      4)forword是在服务器端完成的,不用在客户端重新发送请求,效率较高。

6.JSP和Servlet的相同点和不同点

java面试题,每日一总结(3)