當前環境,很多公司都採取了遠程辦公,遠程面試。有一說一,第一次遠程面試,還是比較緊張的。
螞蟻金服面試(視頻一面)
- Java容器有哪些?哪些是同步容器,哪些是併發容器?
- 爲什麼 Java 要採用垃圾回收機制,而不採用 C/C++的顯式內存管理?
- 一個線程的生命週期有哪幾種狀態?它們之間如何流轉的?
- 什麼是活鎖、飢餓、無鎖、死鎖?怎麼檢測一個線程是否擁有鎖?
- 如何解決同時存在的對象創建和對象回收問題
- 說說一致性 Hash 原理
- 新生代分爲幾個區?使用什麼算法進行垃圾回收?爲什麼使用這個算法?
- HashMap在什麼情況下會擴容,或者有哪些操作會導致擴容?
- HashMap檢測到hash衝突後,將元素插入在鏈表的末尾還是開頭?
- 1.8還採用了紅黑樹,講講紅黑樹的特性,爲什麼大家一定要用紅黑樹而不是AVL、B樹之類的?
- https和http區別,有沒有用過其他安全傳輸手段?
- 線程池的工作原理,幾個重要參數,然後給了具體幾個參數分析線程池會怎麼做,最後問阻塞隊列的作用是什麼?
- RabbitMQ 上的一個 queue 中存放的 message 是否有數量限制?
- RabbitMQ 允許發送的 message 最大可達多大?
- 有使用過哪些NoSQL數據庫?MongoDB和Redis適用哪些場景?
- 項目用 Spring 比較多,有沒有了解 Spring 的原理?AOP 和 IOC 的原理
螞蟻螞蟻金服面試(視頻二面)
- 查詢中哪些情況不會使用索引?
- 描述分佈式事務之TCC服務設計?
- 數據庫索引,底層是怎樣實現的,爲什麼要用B樹索引?
- Mysql主從同步的實現原理?
- MySQL是怎麼用B+樹?
- 談談數據庫樂觀鎖與悲觀鎖?
- Redis和memcache有什麼區別?Redis爲什麼比memcache有優勢?
- Redis 的數據結構
- 海量數據過濾,黑名單過濾一個 url。
- 講一講AtomicInteger,爲什麼要用CAS而不是synchronized?
螞蟻金服三面(視頻三面)
- 考慮redis的時候,有沒有考慮容量?大概數據量會有多少?
- Redis 的 list zset 的底層實現
- 分佈式架構設計哪方面比較熟悉
- 分佈式 session 的共享方案有哪些,有什麼優劣勢
- 談談分佈式鎖、以及分佈式全局唯一ID的實現比較?
- 集羣監控的時候,重點需要關注哪些技術指標?這些指標如何優化?
- 從千萬的數據到億級的數據,會面臨哪些技術挑戰?你的技術解決思路?
- 排序算法的複雜度,快速排序非遞歸實現。
- 消息中間件有哪些?他們之間的優劣勢?
- 介紹項目
- 介紹你實踐的性能優化案例,以及你的優化思路
視頻面試之後,我總結了下,問的都不算難,雖然不是很順暢,但問題也都回答上了,就是通過視頻的形式來面試,總感覺怪怪的。本以爲已經沒戲了,誰知道2天后收到通知,竟然過了!現在正在考慮要不要辭職過去...
當然,大廠的面試,是一個系統規範化的流程,除了Redis、MQ這些必備品外,每一個簡歷都會有一句Java基礎紮實(有沒有被說中),那麼,到底怎麼樣算Java基礎紮實?
1、集合,例如 List、Map的原理,HashMap基本必問這個不用我多說
2、併發,例如線程、線程池,鎖相關,這些也基本必問
3、JVM,例如垃圾回收器,垃圾回收算法,OOM處理,jvm參數及調優
上面說的這些,是最最最基本的面試標配了。
首先來說下對於簡歷的準備。MQ、Redis這兩個是標配沒跑的了。爲啥?你要突出你的核心競爭力,無非圍繞高併發、高可用、海量數據這幾個點出發。
其次,核心競爭力也體現在分佈式解決方案的真實落地實踐,但是這些分佈式解決方案,也很大程度上依賴 Redis和 MQ。
比如分佈式session需要依賴 Redis,分佈式事務最終一致性需要依賴 MQ。也就是說,一份優秀的簡歷,深入 Redis和 MQ這兩個,都是避無可避!
以下主要分享面經和個人學習方法,會包括很多PDF文檔,如面試題庫(含答案+解析)、學習筆記、實戰文檔和腦圖等等,如果您需要獲取到文檔,請轉發一下本文,關注樓主,私信回覆【乾貨】即可獲得免費領取方式。
由於文章的篇幅有限,所以這次的阿里面試題答案整理在了PDF文檔
如果簡歷上只是做的項目不同,但是實質都是簡單的CRUD,那麼沒面試之前,已經給淘汰得差不多了。
通過數十家面試的觀察,對於Redis和MQ,考察的方向,其實也是有跡可循的。首先他們的高可用是怎麼保證的,原理是怎麼樣的,幾乎必問(不信你可以自己觀察)。當然還會根據你的回答往下繼續拓展問題,每個人回答得不一樣,自然拓展的問題也不一樣。
Java核心知識整理
Spring全家桶系列
性能優化(JVM+Tomcat+MySQL)答案解析整理
分佈式(限流+緩存+通訊)答案解析整理:
刷題:
既然是要面試,那麼就少不了刷題,實際上春節回家後,哪兒也去不了,我自己是刷了不少面試題的,所以在面試過程中才能夠做到心中有數,基本上會清楚面試過程中會問到哪些知識點,高頻題又有哪些,所以刷題是面試前期準備過程中非常重要的一點。
很多人感嘆“學習無用”,實際上之所以產生無用論,是因爲自己想要的與自己所學的匹配不上,這也就意味着自己學得遠遠不夠。無論是學習還是工作,都應該有主動性,所以如果擁有大廠夢,那麼就要自己努力去實現它。