面試題總結——JAVA高級工程師
近期考慮換工作的問題,於是投簡歷面試,面試5家公司的高級Java工程師,有4家給了我offer,想着總結一下面試經驗,方便最近正在尋求機會的你們
一、無筆試題
二、三大框架方面問題
1、Spring 事務的隔離性,並說說每個隔離性的區別
解答:Spring事務詳解2、Spring事務的傳播行爲,並說說每個傳播行爲的區別
解答:Spring事務詳解3、hibernate跟Mybatis/ ibatis 的區別,爲什麼選擇?
解答:Hibernate與Mybatis的比較4、Struts跟Spring mvc的優缺點,讓你選會如何選
解答:Spring MVC 與 Struts的區別5、簡單說說Spring 事務機制
解答:Spring事務機制6、Spring 4.0新特性
解答:Spring4新特性三、負載均衡、集羣相關
1、weblogic 負載均衡的原理和集羣的配置
解答:a、WEBLOGIC負載均衡原理 b、負載均衡和集羣的配置(參考)2、Nginx+Tomcat+Redis實現負載均衡、資源分離、session共享
解答:配置參考3、nginx配置文件詳解——nginx.conf
解答:Nginx配置文件詳細說明四、項目優化相關
1、web如何項目優化
解答:這個我整理過一次,web項目性能優化(整理)2、單例模式有幾種? 如何優化?
解答:單例模式的7中用法3、簡單說說線程池的原理和實現
解答:線程原理及實現五、併發和安全方面
1、項目併發如何處理?(我們是web項目)
解答:高併發量網站解決方案,另外,還有數據庫樂觀鎖,數據庫讀寫分離、使用消息隊列、多用存儲過程等等2、簡單說說功能權限存在的水平權限漏洞和垂直權限漏洞的場景和解決辦法(因爲我們目前權限級別就是功能權限)
解答:A、水平權限漏洞,如下圖
假設機構有 用戶A和用戶B 兩個用戶,其中A有1、2和3權限 , 用戶B有 2 和3 的權限,這時候假設用戶B 知道1,並給自己添加1的權限,這時候就是水平權限漏洞。
目前解決辦法:1、限制入口,讓用戶B無法編輯自己的權限 2、對用戶B無法進行向上擴展。最根本的解決辦法是深入到數據權限
解答:水平權限漏洞和解決辦法
B、垂直權限漏洞
解答:垂直權限漏洞案例和解決方案
3、平臺上的圖片如何防盜鏈
解答:http下載防盜鏈原理:http協議的字段referer記錄來實現4、如何區分上傳的圖片是不是木馬?
解答:1、看上傳的圖片後綴 2、如何後綴是篡改的,那麼每個文件有個魔術數字 文件上傳-魔術數字5、消息隊列的原理和實現
解答:1、消息隊列原理 2、深入淺出 消息隊列 ActiveMQ六、數據庫方面
1、mysql查詢字段區不區分大小寫?
解答:不區分,哪怕值也不區分(我當時還反問了,區不區分大小的應用含義有哪些,面試官沒說得出來)2、簡單說說數據庫集羣和負載均衡、分佈式(我不懂這塊)
解答:數據庫負載均衡和集羣參考 ,參考23、存儲過程的結構和優點
解答:大概結構存儲過程的優缺點