分享一個好消息,最近一個經常與我交流技術的粉絲朋友成功入職阿里!暫且叫他阿布吧。
絕大多數技術人都有個阿里夢,阿布也不例外。在準備跳槽的日子,阿布也到其它的大廠面試過,最終他選擇了阿里。阿布在10月份入職阿里菜鳥物流研發部,主要負責物流網絡系統研發,級別是P6+。
對很多人來說,每年的雙11都是個大挑戰。但是在阿里內部,其實阿布他們挺閒的,只需要通宵值班盯著系統的運行狀況,出了問題就忙,不出問題還是正常的。(一般都不會出問題【手動滑稽】)
阿布去阿里面試一共4面,都是技術面,7年的工作經驗,加上前期的充分準備,勉強不那麼費力。
- 第1面主要問算法,像sort排序方法,還有HASHMAP線程安全,還有spring的IOC和AOP及bean生命週期等;
- 第2面問了很多JVM;
- 然後第3面好像問了kafka,還有網絡安全https,死鎖等問題;
- 第4面讓他畫了個架構圖,根據架構圖展開了提問,答上來之後就只用等著確定入職時間了。
今天主要跟大家分享下阿里第2面關於jvm的面試內容。阿里菜鳥P6除了基礎之外,源碼是必不可少的,大廠面試的內容其實都是類似的。以下是面試官提出的問題(阿布面試結束後整理的,大體沒差):
1、jvm類加載機制,每一步分別做了什麼?
2、JVM運行時數據區包括哪些部分,垃圾收集有哪些算法,各自的特點?如何確定被清除的對象?
JVM運行時數據區包括哪些部分?
垃圾收集有哪些算法,各自的特點?
如何確定被清除的對象?
3、JVM中的垃圾回收器有哪些?區別是什麼?
4、Mysql索引類型和區別?聚簇索引和非聚簇索引的區別?
5、事務的隔離級別
6、SpringBean創建過程中的用到了哪些設計模式?
7、談談IOC和AOP
8、概述下spring中bean的生命週期
9、從源碼的角度,描述一下SpringMvc的整個訪問或者調用流程。
10、談談線程池的參數列表和拒絕策略
11、請概述AQS
第2面的時候,阿布感覺面試官想用JVM來攆壓他,像運行時數據區,垃圾收集算法等,還有事務及Springmvc整個流程,AQS等,問的很多。
面試官:“簡單談談IOC和AOP。”
阿布當時的回答確實也比較簡單,源碼這塊他讀了好幾遍,IOC是控制反轉,主要是對Bean的管理,然後還有對象依賴注入,阿布講了它的多種注入方式,然後還講了bean的生命週期,面試官就沒往下問了。
關於AOP阿布重點講了動態代理模式,還有AOP的源碼實現,面試官點了頭也沒問了。
面試官:“關於從源碼的角度,描述一下SpringMvc的整個訪問或者調用流程。”
SpringMVC大家一定用過,但是源碼才是你和別人不一樣的地方。Springmvc的核心是一個servlet,DispatcherServlet,用戶從瀏覽器提交到DispatcherServlet,由這個類進行分發,然後由這個類找到具體處理方法,然後再遞交到Handler並執行這個Handler,執行完後返回給ModelAndView,最後就是進行視圖解析,響應結果到瀏覽器。面試官當時說了思路正確,也就沒多問了。
一般大廠面試基本上所有的問題都是結合具體場景來問你問題,不僅要會使用這些技術,還要知道為什麼要用這個技術,以及如何做到高可用等等。對於社招,我感覺是技術問的相對來說更加深入,所以對有些源碼還是要了解點,比如併發相關的原理,是經常被問到的。JVM就更不用說了,幾乎是必問到的。
我們所有的程序都運行在Java虛擬機上,只有對Java虛擬機底層原理進行深入的學習,不管是JVM內存區域、堆的分代與垃圾回收算法、JVM性能調優。在全面理解JVM的運行機制後,我們就能成為更優秀的Javaer。
同時很多的Java開發朋友在面試時面對JVM總會有答而不全,答非所問的情況,對學習Java虛擬機這一塊今天在這筆者特地免費分享一份精心整理的JVM與性能調優核心實戰知識點筆記及JVM面試題解析(基礎,進階,實戰)給大家!
由於文章篇幅過長,小編整理成一套PDF文檔的格式把JVM以及性能優化解析整理完成,文檔獲取方式:轉發此文,私信回覆【JVM】諮詢如何免費獲取學習資料!
記得幫忙轉發分享此文後私信我喲!
目錄展示
從五個方面全面解析了JVM、性能優化及述寫了面試常問解析
1.JVM內存區域劃分
2.JVM執行子系統
3.垃圾回收器和內存分配策略
4.編寫高效優雅Java程序
5.性能優化
JVM高頻常問面試題解析
內容展示
JVM 內存區域劃分內容
- 程序計數器(線程私有)
- Java棧(線程私有)
- 本地方法棧(線程私有)
- 堆(線程共享)
- 方法區(線程共享)
- 直接內存(線程共享)
二、JVM執行子系統內容
- Class類文件結構
- 字節碼指令
- 類加載機制
- 類加載器
- Tomcat類加載機制
- 方法調用詳解
三、垃圾回收器和內存分配策略內容
- Java中是值傳遞還是引用傳遞?
- 引用類型
- 基本垃圾回收算法
- 分代處理垃圾
- JAVA中垃圾回收GC的類型
四、編寫高效優雅Java程序
- 面向對象
- 方法
- 通用程序設計
五、性能優化
- 常用的性能評價/測試指標
- 常用的性能優化手段
- 應用服務性能優化
JVM高頻常問面試題解析
由於文章篇幅過長,小編整理成一套PDF文檔的格式把JVM以及性能優化解析整理完成,文檔獲取方式:轉發此文,私信回覆【JVM】諮詢如何免費獲取學習資料!
記得幫忙轉發分享此文後私信我喲!
閱讀更多 JavaSpring高級進階 的文章