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