1. 程式人生 > >如何準備BAT技術面試答案(中)——Java研發方向

如何準備BAT技術面試答案(中)——Java研發方向

JavaEE: 

 

1.servlet生命週期及各個方法

參考文章 http://www.cnblogs.com/xuekyo/archive/2013/02/24/2924072.html

2.servlet中如何自定義filter

參考文章 http://www.cnblogs.com/javawebsoa/archive/2013/07/31/3228858.html

3.JSP原理

參考文章 http://blog.csdn.net/hanxuemin12345/article/details/23831645

4.JSP和Servlet的區別

  • JSP經編譯後就變成了“類servlet”。
  • JSP由HTML程式碼和JSP標籤構成,更擅長頁面顯示;Servlet更擅長流程控制。
  • JSP中嵌入JAVA程式碼,而Servlet中嵌入HTML程式碼。

5.JSP的動態include和靜態include

  • 動態include用jsp:include動作實現,如< jsp:include page=”abc.jsp” flush=”true” />,它總是會檢查所含檔案中的變化,適合用於包含動態頁面,並且可以帶引數。會先解析所要包含的頁面,解析後和主頁面合併一起顯示,即先編譯後包含。
  • 靜態include用include偽碼實現,不會檢查所含檔案的變化,適用於包含靜態頁面,如<%@ include file=”qq.htm” %>,不會提前解析所要包含的頁面,先把要顯示的頁面包含進來,然後統一編譯,即先包含後編譯。

6.Struts中請求處理過程

參考文章 http://www.cnblogs.com/liuling/p/2013-8-10-01.html

7.MVC概念

參考文章 http://www.cnblogs.com/scwyh/articles/1436802.html

8.spring mvc與Struts區別

參考文章 http://blog.csdn.net/tch918/article/details/38305395 
參考文章 http://blog.csdn.net/chenleixing/article/details/44570681

9.hibernate/Ibatis兩者的區別

參考文章 http://blog.csdn.net/firejuly/article/details/8190229

10.Hibernate一級和二級快取

參考文章 http://blog.csdn.net/windrui/article/details/23165845

11.簡述Hibernate常見優化策略

參考文章 http://blog.csdn.net/shimiso/article/details/8819114

12.Spring bean的載入過程(推薦看Spring的原始碼)

參考文章 http://geeekr.com/read-spring-source-1-how-to-load-bean/

13.Spring bean的例項化(推薦看Spring的原始碼)

參考文章 http://geeekr.com/read-spring-source-two-beans-initialization/

14.Spring如何實現AOP和IOC(推薦看Spring的原始碼)

參考文章 http://www.360doc.com/content/15/0116/21/12385684_441408260.shtml

15.Spring bean注入方式

參考文章 http://blessht.iteye.com/blog/1162131

16.Spring的事務管理

這個主題的參考文章沒找到特別好的,http://blog.csdn.net/trigl/article/details/50968079 這個還可以。

17.Spring事務的傳播特性

參考文章 http://blog.csdn.net/lfsf802/article/details/9417095

18.springmvc原理

參考文章 http://blog.sina.com.cn/s/blog_7ef0a3fb0101po57.html

19.springmvc用過哪些註解

參考文章 http://aijuans.iteye.com/blog/2160141

20.Restful有幾種請求

參考文章,http://www.infoq.com/cn/articles/designing-restful-http-apps-roth,該篇寫的比較全。

21.Restful好處

  • 客戶-伺服器:客戶-伺服器約束背後的原則是分離關注點。通過分離使用者介面和資料儲存這兩個關注點,改善了使用者介面跨多個平臺的可移植性;同時通過簡化伺服器元件,改善了系統的可伸縮性。
  • 無狀態:通訊在本質上是無狀態的,改善了可見性、可靠性、可伸縮性.
  • 快取:改善了網路效率減少一系列互動的平均延遲時間,來提高效率、可伸縮性和使用者可覺察的效能。
  • 統一介面:REST架構風格區別於其他基於網路的架構風格的核心特徵是,它強調元件之間要有一個統一的介面。

22.Tomcat,Apache,JBoss的區別

  • Apache:HTTP伺服器(WEB伺服器),類似IIS,可以用於建立虛擬站點,編譯處理靜態頁面,可以支援SSL技術,支援多個虛擬主機等功能。
  • Tomcat:Servlet容器,用於解析jsp,Servlet的Servlet容器,是高效,輕量級的容器。缺點是不支援EJB,只能用於java應用。
  • Jboss:應用伺服器,執行EJB的J2EE應用伺服器,遵循J2EE規範,能夠提供更多平臺的支援和更多整合功能,如資料庫連線,JCA等,其對Servlet的支援是通過整合其他Servlet容器來實現的,如tomcat和jetty。

23.memcached和Redis的區別

  • 效能對比:由於Redis只使用單核,而Memcached可以使用多核,所以平均每一個核上Redis在儲存小資料時比Memcached效能更高。而在100k以上的資料中,Memcached效能要高於Redis,雖然Redis最近也在儲存大資料的效能上進行優化,但是比起Memcached,還是稍有遜色。
  • 記憶體使用效率對比:使用簡單的key-value儲存的話,Memcached的記憶體利用率更高,而如果Redis採用hash結構來做key-value儲存,由於其組合式的壓縮,其記憶體利用率會高於Memcached。
  • Redis支援伺服器端的資料操作:Redis相比Memcached來說,擁有更多的資料結構和並支援更豐富的資料操作,通常在Memcached裡,你需要將資料拿到客戶端來進行類似的修改再set回去。這大大增加了網路IO的次數和資料體積。在Redis中,這些複雜的操作通常和一般的GET/SET一樣高效。所以,如果需要快取能夠支援更復雜的結構和操作,那麼Redis會是不錯的選擇。

24.如何理解分散式鎖

參考文章 http://blog.csdn.net/zheng0518/article/details/51607063 
和 http://blog.csdn.net/nicewuranran/article/details/51730131

25.你知道的開源協議有哪些

常見的開源協議有GPL、LGPL、BSD、Apache Licence vesion 2.0、MIT,詳細內容參考文章http://blog.jobbole.com/44175/ 
http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html

26.json和xml區別

  • XML: 
  • 應用廣泛,可擴充套件性強,被廣泛應用各種場合; 
  • 讀取、解析沒有JSON快; 
  • 可讀性強,可描述複雜結構。

 
  • JSON:
  • 結構簡單,都是鍵值對; 
  • 讀取、解析速度快,很多語言支援; 
  • 傳輸資料量小,傳輸速率大大提高; 
  • 描述複雜結構能力較弱。

設計模式: 
 

1.設計模式

參考文章 http://www.cnblogs.com/beijiguangyong/archive/2010/11/15/2302807.html

2.設計模式的六大原則

參考文章 http://www.uml.org.cn/sjms/201211023.asp

3.用一個設計模式寫一段程式碼或畫出一個設計模式的UML

參考文章 http://www.cnblogs.com/beijiguangyong/archive/2010/11/15/2302807.html

4.高內聚,低耦合方面的理解

參考文章 http://my.oschina.net/heweipo/blog/423235