騰訊 實習一面 java 崗
一面 ( 3/27, 26 mins )
1. 聊簡歷
2. 策略模式 3. HashMap 源碼,resize() 為什麼是 2 的倍數?capacity, load_factor
4. 樂觀鎖、悲觀鎖如何實現(忘記了)5. ConcurrentHashMap
6. 單例模式(懶漢、餓漢、雙重檢查)
7. 為什麼雙重檢查有缺陷?因為指令重排序,可能創建兩次
8. TCP 三次握手
9. 為什麼四次揮手要多這一次?因為伺服器可能資料尚未傳完
10. CAS (Compare And Swap)
11. concurrent 的 atomic 包,用到 CAS
12. 樂觀鎖的 ABA 問題是什麼?如何解決?
13. AtomicInteger 如何實作? `compareAndSet()` 沒有鎖也能正確
14. volatile 有保證原子性嗎? i++
15. synchronized 獨佔鎖(悲觀鎖)
16. transient, 序列化
17. synchronized, lock 的差別
18. ReentrantLock 比 synchronized 多了 鎖投票,定時鎖等候和中斷鎖等候...等功能