今天的面試主要是上午的問題,大概技術有1個多小時的面試:
開始時間:上午9:40左右
結束時間:上午10:50左右
公司:北京惠贏天下
總體的面試感覺確實不錯,技術問的挺深入也很細緻,完全沒有糊弄的成分,而且我不會的問題也會和我說一下答案是什麼。
1.spring管理bean默認是單例,什麼情況下才會引發問題。如何解決?
思路:我是想這個問題主要問了spring中bean作用域的。
回答:在web項目中對於高併發情況下類似於多線程的造成問題一樣,對於有狀態的bean來說很容易有線程不安全的問題。處理方式就是將這個bean的作用範圍改爲"prototype"。
追問:如果還繼續使用單例模式如何?
回答:我想了一下但是沒有合適的答案~~~~
提示:用過ThreadLocal麼?(我恍然大悟)
解析:ThreadLocal可以定義變量,定義的變量有一個特點就是沒個變量的實例範圍就是當前線程的。保證了不會造成線程不安全的問題
2.spring管理bean的作用域有哪些(用英文說出來),區別是什麼?
思路:spring bean的作用域我知道有四個
回答:4個,分別是:singleton,prototype,request,session
追問:不對,你在想想(當然我沒想起來)~~一共五個
解析:少了一個global session(也就是門戶網站所使用)
類似標準的http session作用域,不過僅僅在基於portlet的web應用當中纔有意義。
類似標準的http session作用域,不過僅僅在基於portlet的web應用當中纔有意義。Portlet規範定義了全局的Session的概念。
他被所有構成某個portlet外部應用中的各種不同的portlet所共享。
在global session作用域中所定義的bean被限定於全局的portlet session的生命週期範圍之內。
Portlet規範定義了全局的Session的概念。
他被所有構成某個portlet外部應用中的各種不同的portlet所共享。
在global session作用域中所定義的bean被限定於全局的portlet session的生命週期範圍之內。
3.spring初始化bean的過程?
思路:這個沒有思路~~~
回答:不是很瞭解
解析:暫時還有去了解
4.Mysql引擎有幾種特點是什麼?
思路:之前只記得有個innodb但是不清楚
回答:有個innodb,其他的不瞭解
追問:innodb有什麼特點?
~~~~
解析:
1.數據庫引擎是幹什麼的?
數據庫引擎是用於存儲、處理和保護數據的核心服務。
2.mysql有哪幾種數據庫引擎?
在缺省情況下,MYSQL支持三個引擎:ISAM、MYISAM和HEAP。INNODB和BERKLEY(BDB),也常常可以使用。
3.他們的區別是什麼?
ISAM:是一個定義明確且歷經時間考驗的數據表格管理方法,它在設計之時就考慮到數據庫被查詢的次數要遠大於更新的次數。
優點:ISAM執行讀取操作的速度很快,而且不佔用大量的內存和存儲資源。
缺點:不支持事務處理(對應優點)、不能夠容錯:如果你的硬盤崩潰了,那麼數據文件就無法恢復了
MYISAM:MYISAM是MYSQL的ISAM擴展格式和默認的數據庫引擎。
優點:提供ISAM裏所沒有的索引和字段管理的功能、使用一種表格鎖定的機制,來優化多個併發的讀寫操作
缺點:需要經常運行OPTIMIZE TABLE命令,來恢復被更新機制所浪費的空間
HEAP:允許只駐留在內存裏的臨時表格。
優點:駐留在內存中會讓他比ISAM和MYISAM的速度都要快
缺點:顯而易見,內存中的數據是不穩定的
INNODB和BERKLEYDB:包括了對事務處理和外來鍵的支持,缺點就是速度不及以上三點
5.對象如何進行深度複製個淺複製,分別複製了什麼?有什麼區別?
思路:我知道java中有這個概念,大體和clone()方法有關係
回答:淺複製會複製對象的所有的變量以及其他屬性,不會複製引用的對象,也就是複製的對象和被複制對象沒有關係;深複製則相反。
追問:你確定麼?~(當然,之後我才之後我說反了)
解析:
淺複製(淺克隆) :被複制對象的所有變量都含有與原來的對象相同的值,而所有的對其他對象的引用仍然指向原來的對象。
換言之,淺複製僅僅複製所考慮的對象,而不復制它所引用的對象。
深複製(深克隆) :被複制對象的所有變量都含有與原來的對象相同的值,除去那些引用其他對象的變量。
那些引用其他對象的變量將指向被複制過的新對象,而不再是原有的那些被引用的對象。
換言之,深複製把要複製的對象所引用的對象都複製了一遍。
6.H5中用什麼存儲大量數據
思路:完全不知道
解析:localStorage 和 sessionStorage
7.Rest風格響應json
思路:rest風格在springmvc中就有
回答:可以使@PathVariable註解實現 響應使用@ResponseBody
追問:不對,你這不是rest響應
解析:在網上找了一段代碼,應該是這個意思
@RequestMapping(value={"/info/{pid}"},method=RequestMethod.GET)
public ModelAndView getProductInfo(@PathVariable String pid, HttpServletRequest request,HttpServletResponse response) throws Exception {
Map<String,Object> map = new HashMap<String,Object>();
Product pro = new Product();
pro.setPid(pid);
map.put("name", pid);
map.put("pro", pro);
ModelAndView mav=new ModelAndView("products/list",map);
return mav;
}
8.對於已經排序以後的數組如何快速的找到其中某一個數字
思路:那應該是二分法速度要快一些啊
回答:使用二分法來進行查找
追問:二分法最少查找次數和最多查找次數分別是多少?
回答:~~~
追問:最少肯定是一次啊,那最多呢?
回答:~~~
解析:百度查了一下,最終的結果是一個公式關於log的,這些東西都忘乾淨了~~~高中的啊
9.Spring框架兩種注入的註解有什麼區別
思路:兩種註解都用過,有什麼區別不是很清晰
解析:
1.@Resource註解:按照名字進行注入,當沒有對應名字的時候再去使用類型注入
2.@Autowried註解:按照類型進行注入,當沒有對應類型的時候在按照名字注入(需要配合@Qualifier)
10.代理模式的動態代理和靜態代理有什麼區別
11.Oracle的三層嵌套爲什麼
~~~
解析:看了一下這個博客
12.抽象工廠原理
13.Having以後得條件可以用別名麼
不能
14.Shiro權限你是如何配置的
15.如何實現一個雙向鏈表
16.對於一張學生表以及分數,相同的分數應該是並列名次,用什麼函數可以實現
17.redis中同步策略