如何準備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中請求處理過程
7.MVC概念
8.spring mvc與Struts區別
參考文章 http://blog.csdn.net/tch918/article/details/38305395
參考文章 http://blog.csdn.net/chenleixing/article/details/44570681
9.hibernate/Ibatis兩者的區別
10.Hibernate一級和二級快取
11.簡述Hibernate常見優化策略
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注入方式
16.Spring的事務管理
這個主題的參考文章沒找到特別好的,http://blog.csdn.net/trigl/article/details/50968079 這個還可以。
17.Spring事務的傳播特性
18.springmvc原理
19.springmvc用過哪些註解
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.設計模式的六大原則
3.用一個設計模式寫一段程式碼或畫出一個設計模式的UML
參考文章 http://www.cnblogs.com/beijiguangyong/archive/2010/11/15/2302807.html
4.高內聚,低耦合方面的理解