1. 程式人生 > >java面試題,每日一總結(3)

java面試題,每日一總結(3)

1.什麼是設計模式?常用的設計模式有哪些?

設計模式是經過前人無數次實踐總結出來的,設計過程中可以反覆使用的,可以解決特定問題的設計方法

常用的設計模式:

單例模式:分為飢漢模式和飽漢模式

         1.構造方法私有化,讓除了自己的類能建立外,其他地方都不能建立。

         2.在自己的類中建立一個單例項(飽漢模式是一出來就建立單例項,飢漢模式是需要的時候才建立)

         3.提供一個方法獲取該例項物件(建立時需要進行方法同步)

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

代理模式:SpringAOP使用動態代理模式

包裝模式(可以不用說)

JavaWEB部分

2.講一下http get和post的區別

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的相同點和不同點