面試過程:
一面總體上還是圍繞Java基礎、JVM、併發編程、數據結構等展開。一面結束後很快安排了二面,相對一面,二面和三面從項目入手多數問的是數據庫,緩存,分佈式架構等問題且更深入,問題比較刨根問底,更加註重對一些技術細節的理解和把握。比如數據庫操作,面試官會詳細的問你數據庫插入和刪除一條數據的過程在底層是如何執行的,項目裡配置了讀寫分離,也會比較深入的就實現方法和底層邏輯展開討論。HR面很愉快,問了一些薪資和職業規劃上的問題!
面試問題如下:
技術一面(注重問了基礎):
自我介紹
常見集合類的區別和適用場景
併發容器瞭解哪些?
如何判斷鏈表是否有環
平時會用到哪些數據結構?
解決hash衝突的方法有哪些?
講講自己對HashMap的理解,以及和Weakhashmap的區別?
concurrentHashMap如何實現
集群服務器 如何application 共享
JAVA網絡編程中: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輪面試
你怎麼看待你自己,你最大的核心競爭力是什麼
未來自己的職業規劃
對阿里技術氛圍有什麼樣的理解,用過哪些阿里的開源庫
期望的薪資是多少
最後,你有什麼想了解的
總結
技術方面,結合自己的體會,總結下面幾點:
基礎知識必須要紮實,包括語言基礎,計算機基礎,算法和基本的Linux運維等
設計模式,造輪子的能力,各種緩存和數據庫應用,緩存,中間件技術,高併發和高可用的分佈式系統設計
軟性指標,包括快速學習,良好的溝通能力,以及對相關行業的瞭解
面對這麼多得技術點同時給大家整理了一這個學習大綱,希望我們一起進步早日成為架構師迎娶白富美;
最後針對於上面的面試問到的知識點我總結出了互聯網公司java程序員面試涉及到的絕大部分面試題及答案做成了文檔和架構視頻資料免費分享給大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分佈式、高併發等架構技術資料),希望能幫助到您面試前的複習且找到一個好的工作,也節省大家在網上搜索資料的時間來學習,也可以關注我一下以後會有更多幹貨分享。

領取資料方式:隨收轉發或者關注+私信(資料)即可免費拿走!
閱讀更多 檸萌y 的文章