前段時間參加了珠海遠光的java開發工程師面試,本人第一次面試,沒有經驗加準備不充分,慘敗。在這裡做一下總結: 缺乏自信
這可能是最重要的原因之一。因為準備不充分以及面試經驗缺乏,導致自己無比緊張而且表現得異常的爛,回答問題經常找不到點上(之後的幾次面試也有這樣的問題,因為太緊張以及知識積累不夠,不知道該從什麼方向回答面試官的問題)。 基礎知識學習要條理系統
第一次面試,沒有任何經驗,雖然之前準備了一些面試題基礎題,也搞懂了一部分。但是根本沒有用到,究其原因,是因為學習基礎過於片段化。面試官總是從淺入深的提問,如果最基礎的“物件導向的三大特性”都不知道,人家怎麼可能敢問你“堆棧記憶體配置”的問題。
我的知識積累就存在這樣的問題,不系統,有淺有深,以後的學習中要加強總結,形成自己由淺入深的知識體系。 面試問題總結
一、設計模式中的單例模式是什麼,有幾種實現方式。
參考:http://blog.csdn.net/jason0539/article/details/23297037/
1. 單例模式特點:
a、單例類只能有一個執行個體。
b、單例類必須自己建立自己的唯一執行個體。
c、單例類必須給所有其他對象提供這一執行個體。
2. 常用寫法:
a、懶漢式(線程不安全)
解決方案:
(1)加同步synchronized
(2)雙重檢查鎖定:
判斷執行個體是否為空白,如果為空白就鎖定。
(3)靜態內部類,靜態內部類中定義靜態不可更改的執行個體
b、餓漢式(一旦載入,就被載入,天生安全執行緒)
c、登記式單例(hashmap記錄靜態執行個體是否存在,並且用到了餓漢式靜態執行個體構造方法)
二、 物件導向的三大特性有哪些
封裝、多態、繼承
三、 資料庫分頁最佳化
先查自增主鍵,然後找出所要返回的對應的元組。(針對MySQL,lImit(MySQL專屬))
四、servlet的生命週期
Servlet的生命週期分為5個階段:載入、建立、初始化、處理客戶請求、卸載。
(1)載入:容器通過類載入器使用servlet類對應的檔案載入servlet
(2)建立:通過調用servlet建構函式建立一個servlet對象
(3)初始化:調用init方法初始化
(4)處理客戶請求:每當有一個客戶請求,容器會建立一個線程來處理客戶請求
(5)卸載:調用destroy方法讓servlet自己釋放其佔用的資源 要有自己的亮點
面試之後和師兄溝通,聽了聽他面試時的經理,發現除了要基礎紮實,盡量回答出面試官提的問題,還要展現出自己在某一方面研究深入的亮點,吸引面試官眼球。
繼續加油吧。