阿里一面
- 自我介紹
- 鏈表,數組的優缺點,應用場景,查找元素的複雜度
- 二叉樹怎麼實現的
- Java中都有哪些鎖
- 可重入鎖的設計思路是什麼
- 樂觀鎖和悲觀鎖
- synchronized機制
- hashmap原理,處理哈希衝突用的哪一種方法(拉鍊)
- 還知道什麼處理哈希衝突的方法(開放地址檢測)
- 開放地址檢測怎麼實現的
- 從哈希表中刪除一個元素,再加入元素時剛好與原來那個哈希衝突,這個元素會放在哪
- 併發容器,Hashtable和concurrenthashmap區別
- redis原子操做怎麼用比較好
- 消息隊列用過哪些?
阿里二面
操做系統模塊:java
一、說一下並行和併發的區別linux
二、你知道進程嗎?有進程爲什麼還有線程?面試
三、操做系統是如何調度進程呢的redis
四、好比linux下我打開一個文件調用read函數,整個過程說的越細越好算法
五、同步異步阻塞非阻塞IO詳細越好。spring
網絡模塊:數據庫
- TCP報文格式
- TCP和UDP
- 擁塞控制
- 超時重傳
- 三次握手
- 滑動窗口
- 常見協議的端口號
數據庫模塊:數組
- 索引數據結構
- 索引常見優化方案
- 存儲引擎
- 事務(spring框架如何實現事務的呢)
- 垂直拆分
- 分庫分表
- 讀寫分離
Java模塊:緩存
- hashmap
- Arraylist和linkedlist
- voliate
- 線程池,如何根據CPU的核數來設計線程大小,若是是計算機密集型的呢,若是是IO密集型的呢?
- countdownlatch和CyclicBarrier底層實現原理
- 線程狀態以及API怎麼操做會發生這種轉換
JVM模塊微信
面試官說只問三個問題:
一、內存模型以及分區,須要詳細到每一個區放什麼
二、堆裏面的分區:Eden,survival ,老年代,各自的特色。
三、垃圾回收算法,何時回收。
分佈式:
一、redis與memached選型,你更傾向於選擇哪一個,爲何?
二、分佈式事務解決,你知道咱們阿里巴巴是怎麼作的嗎?
三、消息隊列比較和選型?
五、CAP
阿里三面
- 自我介紹
- 學習技術的方式,開源、書籍、自學、實踐,具體的學習方法?
- 最有技術含量的項目,講講從架構設計再到部署的流程
- 常見的數據庫瓶頸有哪些,怎麼來優化
- 微信附件人這個功能怎麼實現的
以上就是阿里三面題目,如下是總結出來的阿里經典面試題目,包含:集合類、多線程、JVM、spring框架、分佈式緩存、架構設計等。