一面
1.Spring應用Web服務請求傳回Resource的過程?
2.HanderMapping的過程?資料怎麼寫進去的?Key Value是什麼格式的?
3.攔截器和過濾器有什麼差別?
4.SpringAOP用它做什麼事情?織入的時候是運作時還是類加載時織入?
5.SpringAOP怎麼實作?動态代理幾種方式實作?
6.JVM記憶體模型?Java方法局部變量儲存在哪裡?
堆裡存放什麼?堆分代?比例?建立對象有可能放入到老年代裡嗎?MinorGC和FullGC的觸發條件?
7.CMS的過程?總共需要幾次STW?标記的過程?GCRoots有哪些?G1有了解嗎?G1回收過程還有STW嗎?
8.Java四種引用類型?
9.volatile關鍵字的含義?
10.實作原子性i++怎麼辦?
11.巨大的整型數組,找到第k大的數,怎麼辦?
12.快排的好處?
13.堆排序的複雜度,堆排的優勢(對記憶體要求小一些)?
14.很大的數組,除了一個數字出現了一次,其他的數字出現兩次怎麼辦?
15.很大的數組,除了一個數字出現了一次,其他的數字出現三次怎麼辦?
16.代碼:判斷一個樹是不是二叉搜尋樹?
二面
1.SpringMVC的流程?如果遇到異常怎麼處理?
2.SpringMVC并發的時候會不會出現線程安全的問題?
3.實作線程安全怎麼辦?juc下的可以作用于Controller嗎?
4.SpringBean的作用域有哪些?單例和原型有什麼差別?
什麼情況需要用到原型模型?
5.autowired和resource注解的差別?resource怎麼找到這個Bean的?通過什麼資訊找到Bean的執行個體的?
6.MyBatis的#和$的差別
7.Redis的資料類型?String查詢複雜度是O(1),怎麼實作的?SDS和c的String的差別?zset的底層資料結構?
8.統計三天内登入使用者的id?
9.MySQL戶籍系統,身份證号怎麼加索引?面試官提醒:MySQL有索引類型?主鍵,輔助,聯合,Hash
10.MySQL聯合索引為什麼要遵循最左字首原則?底層結構是什麼樣的?
11.不可重複讀(修改)和幻讀(删除和增加)的差別?
12.CMS有什麼缺點?記憶體碎片是怎麼導緻的?其他的垃圾回收器怎麼解決這個問題?
13.AQS非公平鎖怎麼實作的?排隊的時候怎麼知道某線程該運作了呢?通過什麼方式通知(park()方式)?
14.CountDownLatch怎麼通過AQS來底層實作功能的?
15.代碼:删除倒數第k個節點,O(n)複雜度