天貓面試經歷

面試過程

一面總體上還是圍繞Java基礎、JVM、併發編程、數據結構等展開。一面結束後很快安排了二面,相對一面,二面和三面從項目入手多數問的是數據庫,緩存,分佈式架構等問題且更深入,問題比較刨根問底,更加註重對一些技術細節的理解和把握。比如數據庫操作,面試官會詳細的問你數據庫插入和刪除一條數據的過程在底層是如何執行的,項目裏配置了讀寫分離,也會比較深入的就實現方法和底層邏輯展開討論。

一. 技術一面(注重問了基礎)

自我介紹!
常見集合類的區別和適用場景?
併發容器瞭解哪些?
如何判斷鏈表是否有環?
平時會用到哪些數據結構?
解決hash衝突的方法有哪些?
講講自己對HashMap的理解,以及和Weakhashmap的區別?
concurrentHashMap如何實現?
集羣服務器 如何application 共享?
BIO、NIO、AIO的區別和聯繫?
jvm內存模型jmm 知道的全講講
JAVA的垃圾回收,標記算法和複製算法的區別,用在什麼場合?
http和https的區別,http1.x和http2.0的區別,SSL和TSL之間的區別?
GC、G1和ZGC的區別?
B+樹和B樹的區別,和紅黑樹的區別?
內存泄漏與內存溢出的區別?
session的生命週期是多久?
關於Mina框架了解多少?(因爲我在項目裏用到了Mina,所以提到了這個部分)

二.技術二面(大多是數據庫緩存等)

自我介紹,講了下項目!
java cas原理
JAVA線程池有哪些參數,如果自己設計一個線程池要考慮哪些問題?
Java的lock的底層實現?
mysql數據庫默認存儲引擎,有什麼優點
MySQL的事務隔離級別,分別解決什麼問題。
四個表 記錄成績,每個大約十萬條記錄,如何找到成績最好的同學
常見的負載均衡算法有哪些
如果Redis有1億個key,使用keys命令是否會影響線上服務
Redis的持久化方式,aod和rdb,具體怎麼實現,追加日誌和備份文件,底層實現原理知道嗎

三.技術三面(主要是分佈式架構)

自我介紹,講下項目!
請畫一個完整大型網站的分佈式服務器集羣部署圖
多個RPC請求進來,服務器怎麼處理併發呢
講一下Redis的哨兵機制
數據庫分庫分表一般數據量多大才需要?
如何保證數據庫與redis緩存一致的
項目中消息隊列怎麼用的?使用哪些具體業務場景?
JVM相關的分析工具有使用過哪些?具體的性能調優步驟嗎?
MySQL的慢sql優化一般如何來做?除此外還有什麼方法優化?
線上的服務器監控指標,你認爲哪些指標是最需要關注的?爲什麼?
如何做壓測,抗壓手段
秒殺模塊怎麼設計的

四.HR面

自我介紹
你怎麼評價你之前的3輪面試
你怎麼看待你自己,你最大的核心競爭力是什麼
未來自己的職業規劃
對阿里技術氛圍有什麼樣的理解,用過哪些阿里的開源庫
期望的薪資是多少
最後,你有什麼想了解的

總結

技術方面,結合自己的體會,總結下面幾點:
(1)基礎知識必須要紮實,包括語言基礎,計算機基礎,算法和基本的Linux運維等
(2)設計模式,造輪子的能力,各種緩存和數據庫應用,緩存,中間件技術,高併發和高可用的分佈式系統設計
(3)軟性指標,包括快速學習,良好的溝通能力,以及對相關行業的瞭解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章