1. 當需要往一個hashMap里面put很多對象,你會怎么去new 這個hashmap?
注:主要審查是否懂得hash的數據結構,是否會用
HashMap(int initialCapacity, float loadFactor)
這個構造函數去創建一個大容積的Hash結構,懂得原理即可。如果回答正確,可深入問hashmap的擴容。
2. 實現一個先進先出的隊列,分別有arraylist和linkedlist,選擇哪個,為什么?
注:主要審查是否懂得線性表和鏈表。
3. 當我們new arrayList(20)一個這樣的對象后,不斷往里面添加add(object),加到第21個后,內存會有什么調整。
注:主要審查是否懂得可變array的本質,當內存進行擴容的本質是
Arrays.copyOf(elementData, newCapacity)
4. 一個類有幾百個實現方法,突然有個需求:要紀錄每個方法被調用的參數,時間為日志,這個怎么去實現?
注:主要審查是否使用aop等面向切面編程。如果回答正確,繼續追問,只對方法名開頭為’insert’,’update’等方法進行日志紀錄,該怎么配對。注:主要審查對正則表達式的掌握。
5.在vi的編輯下,對光標所在行進行整行刪除命令是什么,將光標移到當前行 第一列的命令是什么
注:主要審查在linux下最基礎的vi編輯命令,不懂vi是否可認為無在linux真實工作?
6. 機器出現OutOfMemoryError: PermGen space 的內存溢出錯誤,解決思路是什么
注:主要審查是否明白方法區或叫永久區的定義,該區是否內存回收,什么實例會存放在該區,不求具體實現方案,主要有大概思路即可。
7. 你的系統將在明天出現讀的高并發,該怎么準備
注:方法多種,主要檢查思路,漫談來觀察。
8. 一臺linux服務器每天定時生成一批文件,需要將這批文件同步到其他多臺服務器,該怎么實現。
注:方法多種,如rsync,nfs,scp等等,主要檢查linux下文件處理的能力,主要檢查思路。
9. 為什么說盡量減小synchronized 方法
注:主要審核對同步實現方法的認識,如果能回答出“鎖”的概念,繼續追問,如果對實例方法加synchronized, 鎖的對象是什么,對靜態方法加synchronized ,鎖的對象是什么
10.說說單例的使用場景是什么,如spring場景中就有許多單例模式
注:答案很多,可以漫談來觀察,能回答出,讓多個線程相互通信達到資源共享即可
11. 隨便在jdk或spring的英文api中找一段讓其翻譯
注:能大概說出接口的用處即可
----------------------------------------
by 陳于喆
QQ:34174409
Mail: dongbule@163.com