1. 程式人生 > >2018阿里實習面經總結(一)

2018阿里實習面經總結(一)

(1)談談Object類
(2)Java中hashCode()是如何實現的
(3)HashMap中解決hash衝突
(4)JAVA中常見的資料結構,特點,如何實現的
(5)給你一個list如何遍歷其中的每一個元素(我答使用的是Iterator迭代器,因為速度快)。為什麼使用迭代器?
(6)如果讓你設計一個執行緒池,你會如何實現?java中是如何實現的?
(7)在主執行緒中有執行緒A,如何讓主執行緒等待A完成。
(8)給你一個場景:需求是有一堆任務,如果執行緒池中執行緒不夠則建立執行緒,如果執行緒空閒30S則銷燬執行緒,
需要一個執行緒池,如何去設計這個執行緒池。
(9)給你一個場景:有一個類,類中含有成員變數a,有多個執行緒多它進行訪問,但只有一個執行緒能夠對它進行更改。這個是執行緒安全的嗎?
(10)針對上面的問題,應該如何操作?(我答的是volatile關鍵字),為什麼volatile可以,底層實現?
(11)volatile和synchronized的區別?synchronized的實現原理
(12)JVM記憶體模型
(13)垃圾回收演算法,垃圾回收流程。
(14)哪些物件是作為GC roots的
(15)瞭解阻塞佇列嗎,如何實現的
(16)資料庫的正規化
(17)資料庫如何優化查詢的?