1. 程式人生 > >記一次百度面試經歷:

記一次百度面試經歷:

一、一面技術面:

1、solr全文索引;

2、寫一個二分查詢;

3、HashMap資料結構(JDK1.8為紅黑樹->並未看1.8的原始碼)問的很細,最後會問桶下面只能有連結串列實現嗎?就是想問1.8的實現;

4、MySQL優化和索引;

5、spring的DI,IOC、AOP;

6、mybatis相關;

7、redis資料結構,持久化,最後問了一個分散式鎖(我用redis實現:設定鎖,設定超時時間,出現異常->超時自動釋放鎖);

8、synchronized和lock的區別,和記憶體實現,樂觀鎖和悲觀鎖;

9、執行緒相關;執行緒的實現,各種狀態等;執行緒池的問題沒有答上來;

10、volatile關鍵字只能保證可見性和有序性,原子性要用到synchronized加鎖;

11、jvm相關:jvm記憶體結構,String a=new String("abc")->記憶體實現;類載入過程,各個屬性都在哪?

12、通過jvm引出異常,error和exception,聊各種異常->怎麼實現的異常,怎麼處理

13、Linux檢視程序等;ps aux|grep java  看程序;jstack 1523 > 1523.log將tump檔案輸出到日誌檔案中;

總結:感覺答得最不好的是jvm這塊,後續會加強.

提點:技術就是那些技術,但是不要為了面試而面試,多去看一看底層原理怎麼實現的有了自己的理解