從7月份開始,打算找工作,一個偶然的機會,拉勾上一個螞蟻金服的師兄找到我,說要內推,在此感謝姚師兄,然後就開始了螞蟻金服的面試之旅。把簡歷發過去之後,就收到了郵件通知,10個工作日聯絡我,請耐心等待。
沒過2天就接到一個杭州的座機,說要約我進行電話面試,效率還是挺高,然後當天晚上就進行了一面。下班後,吃了飯,專門找了一條人比較少的小路,到了7點,電話準時打過來了。
阿里一面
- 講一下 HashMap 中 put 方法過程?
- 對 Key求Hash 值,然後再計算 下標。
- 如果沒有碰撞,直接放入桶中,
- 如果碰撞了,以連結串列的方式連結到後面,
- 如果連結串列長度超過閥值(TREEIFY_THRESHOLD == 8),就把連結串列轉成紅黑樹。
- GC 演算法,除了常見的複製演算法,標記整理,標記清除演算法,還有哪些?
- 增量演算法。主要思想是垃圾收集執行緒與使用者執行緒交替執行。也可以說一邊執行垃圾回收一邊執行使用者程式碼。但是這種方法會造成系統吞吐量下降。
- Spring 主要思想是什麼,回答 IOC 和AOP,怎麼自己實現 AOP ?
- 使用基於反射的動態代理
- SpringAOP 用的哪一種代理
阿里二面
- HashMap 怎樣解決衝突,講一下擴容過程,假如一個值在原陣列中,現在移動了新陣列,位置肯定改變了,那是什麼定位到在這個值新陣列中的位置,
- 將新節點加到連結串列後,
- 容量擴充為原來的兩倍,然後對每個節點重新計算雜湊值。
- 這個值只可能在兩個地方,一個是原下標的位置,另一種是在下標為 <原下標+原容量> 的位置。
- 拋開 HashMap,hash 衝突有哪些解決辦法?
- 10w行資料,每行一個單詞,統計出現次數出現最多的前100個。
- 一個文字檔案,給你一個單詞,判斷單詞是否出現。
- Java 訪問修飾符許可權的區別;
- public 所有類都可訪問
- protected 只允許包內、子類訪問。
- 預設 只允許包內訪問
- private 只允許類內訪問
- String 是否可以繼承, “+” 怎樣實現?
- String 是 final 類,不可繼承。
阿里三面
- 執行緒安全性
- HashMap、ConcurrentHashMap 區別。
- 索引計算消除了最高位的影響
- 預設容量: 16(若定義了初始容量(c),容量會定義為大於(c + (c >>> 1) +1) 的最小 2^n)
- 例如:初始容量為 13,則真正的容量是 32.
- 執行緒安全,併發效能較好
- 將M個平均長度為N的有序佇列組合成一個有序佇列
- 10億條簡訊,找出前一萬條重複率高的
- 對一萬條資料排序,你認為最好的方式是什麼
- 假如有100萬個玩家,需要對這100W個玩家的積分中前100名的積分,按照順序顯示在網站中,要求是實時更新的。積分可能由做的任務和獲得的金錢決定。問如何對著100萬個玩家前100名的積分進行實時更新?
- 1.1 支援斷點續傳。RANGE:bytes=XXX 表示要求伺服器從檔案 XXX 位元組處開始傳送
- 還有一些其他的改進,有興趣可以自行查閱相關資料
- HTTP 和 HTTPS 的主要區別
- 安全。HTTP 直接與 TCP 通訊,而 HTTPS 是先與 SSL(加密) 通訊,然後再由 SSL 和 TCP 通訊
面試總結及建議
每一次Java面試,其實都是一次學習機會,是對自己技術知識棧的梳理、考核、覆盤。我們應該抱著學習的態度,認真對待,找到自己比較薄弱的環節,儘快去查漏補缺學習鞏固。對於面試來說,其實也沒有太多的技巧可言,面試官主要看重的就是個人能力,無非就是兩個方面:
- 技術廣度
- 技術深度
小編在這裡分享些我自己平時的學習資料
由於篇幅限制小編,pdf文件的詳解資料太全面,細節內容實在太多啦,所以只把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的內容!有需要的程式猿(媛)可以新增微信:msbjy2019即可獲取這份資料哦
程式設計師程式碼面試指南 IT名企演算法與資料結構題目最優解
這是” 本程式設計師面試寶典!書中對IT名企程式碼面試各類題目的最優解進行了總結,並提供了相關程式碼實現。針對當前程式設計師面試缺乏權威題目彙總這一-痛點, 本書選取將近200道真實出現過的經典程式碼面試題,幫助廣“大程式設計師的面試準備做到萬無一失。 “刷”完本書後,你就是“題王”!
《TCP-IP協議組(第4版)》
本書是介紹TCP/IP協議族的經典圖書的最新版本。本書自第1版出版以來,就廣受讀者歡迎。
本書最新版進行」護元,以體境計算機網路技不的最新發展,全書古有七大部分共30草和7個附錄:第一部分介紹一些基本概念和基礎底層技術:第二部分介紹網路層協議:第三部分介紹運輸層協議;第四部分介紹應用層協議:第五部分介紹下一代協議,即IPv6協議:第六部分介紹網路安全問題:第七部分給出了7個附錄。
Java開發手冊(嵩山版)
這個不用多說了,阿里的開發手冊,每次更新我都會看,這是8月初最新更新的(嵩山版)
MySQL 8從入門到精通
本書主要內容包括MySQL的安裝與配置、資料庫的建立、資料表的建立、資料型別和運算子、MySQL 函式、查詢資料、資料表的操作(插入、更新與刪除資料)、索引、儲存過程和函式、檢視、觸發器、使用者管理、資料備份與還原、MySQL 日誌、效能優化、MySQL Repl ication、MySQL Workbench、 MySQL Utilities、 MySQL Proxy、PHP操作MySQL資料庫和PDO資料庫抽象類庫等。最後通過3個綜合案例的資料庫設計,進步講述 MySQL在實際工作中的應用。
Spring5高階程式設計(第5版)
本書涵蓋Spring 5的所有內容,如果想要充分利用這一領先的企業級 Java應用程式開發框架的強大功能,本書是最全面的Spring參考和實用指南。
本書第5版涵蓋核心的Spring及其與其他領先的Java技術(比如Hibemate JPA 2.Tls、Thymeleaf和WebSocket)的整合。本書的重點是介紹如何使用Java配置類、lambda 表示式、Spring Boot以及反應式程式設計。同時,將與企業級應用程式開發人員分享一些見解和實際經驗,包括遠端處理、事務、Web 和表示層,等等。
JAVA核心知識點+1000道 網際網路Java工程師面試題
企業IT架構轉型之道 阿里巴巴中臺戰略思想與架構實戰
本書講述了阿里巴巴的技術發展史,同時也是-部網際網路技 術架構的實踐與發展史。