前段時間有小夥伴去餓了麼面試Java專家崗,記錄了一面技術相關的問題,大家可以看看。

基礎問題

1.資料庫事務的隔離級別?

2.事務的幾大特性,並談一下實現原理

3.如何用redis實現訊息的釋出訂閱?

4.java為什麼要在記憶體結構中設計自己的程式計數器,為什麼不使用核心的?

5.分散式事務2pc的過程?

6.redis是單執行緒的,為什麼會這麼快?

7.談談nio的實現,以及netty是如何設計的?

8.微服務化的時候,什麼時候應該拆分,什麼情況應該合併

9.什麼時候應該使用訊息,什麼時候適合介面呼叫?

10.分庫分表中如果讓你設計全域性id,如何設計

11.redis如何進行單機熱點資料的統計?

12.redis叢集中新加節點以後,如何給新節點分配資料?

13.如何從含有100億個整數的檔案中找出其中最大的100個?

業務場景的問題

1.銀行轉賬場景中,如果要你對轉賬這塊功能進行設計,你會重點考慮哪些問題?

2.銀行轉賬場景中,a,b同時互轉你該如何設計?

3.銀行轉賬場景,併發向某一個賬戶轉賬(或者轉出),該如何設計?

4.如何實現安全的減庫存?回答用訊息最終一致,庫存量快取到redis,每次生成訊息前先減快取,接著問,像淘寶這種平臺,某個熱銷商品,qps很高的情況下,又該如何設計?