前段時間一個粉絲去面試阿里旗下的高德地圖,哇,那叫一個心累啊.....
第一輪面試下來還算OK,基本上問的都是一些基礎性的東西,到了第二輪面試,面試官問了一堆什麼原始碼啊,中介軟體,分散式這些東西,越答越懵逼......
事情是這樣的.....
面試官:你好!你的一些資訊我們已經初步瞭解了,咱們直接進入正題吧!
程式設計師:好的!
面試官:談談自己對於 Spring IoC 和 AOP 的理解
程式設計師:IoC是一種設計思想,就是 將原本在程式中手動建立物件的控制權,交由Spring框架來管理.......吧啦吧啦
AOP能夠將那些與業務無關,卻為業務模組所共同呼叫的邏輯或責任(例如事務處理、紀錄檔管理、許可權控制等)封裝起來,便於減少系統的重複程式碼,降低模組間的耦合度,並有利於未來的可拓展性和可維護性.......吧啦吧啦
面試官:恩,答的挺好的,那你說說如何在Spring Boot應用程式中實現Spring安全性?
程式設計師:我丟,毫無準備,菊花頓時一緊!完了完了....這個不熟悉啊....
面試官:那如果讓你寫一個訊息佇列,該如何進行架構設計?
程式設計師:大概就是這樣.......吧吧說了一通
面試官:好的,那你有什麼想問我的嗎?
程式設計師:恩....您看我還有機會嗎?
面試官:不出意外的話,應該是沒有了...
面試官把我問得暈頭轉向,很顯然,高德的二面還是掛了。還是老老實實的惡補原理吧。
回來之後把這些題目做了一個分類並整理出答案(強迫症的我~狂補知識~)分為redis快取,高並行,分散式,微服務,原始碼,並行等,接下來分享一下我的高德面經和一些我的學習筆記,完整版筆記可以【點贊+關注】後,私信【筆記】獲取!
關於Spring原始碼面試真題:
- 什麼是spring框架?spring框架有哪些主要模組?
- 使用spring框架能帶來哪些好處?
- 什麼是控制反轉(IOC)?什麼是依賴注入?
- 請解釋下spring框架中的IOC?
- BeanFactory和ApplicationContext有啥區別?
- spring有幾種設定方式?
- 如何用基於XML設定的方式設定spring?
- 談談自己對於 Spring IoC 和 AOP 的理解
Spring思維導圖
Spring原始碼學習筆記
有關微服務的面試題:
- Dubbo中zookeeper做註冊中心,如果註冊中心叢集都掛掉,釋出者和訂閱者之間還能通訊麼?
- Dubbo 的整體架構設計有哪些分層?
- 什麼是 Spring Boot?以及Spring Boot的優劣勢?
- 你如何理解 Spring Boot 中的 Starters?
- 服務註冊和發現是什麼意思?Spring Cloud 如何實現?
- Spring Cloud斷路器的作用
- 什麼是 Hystrix 斷路器?我們需要它嗎?
微服務學習筆記
有關分散式的面試題:
- 訊息冪等:如何保證訊息不被重複消費?
- 高可用:如何實現訊息佇列的HA?
- 訊息佇列選型: Kafka如何實現高效能?
- 訊息佇列選型: RocketMQ 適用哪些場景?
- 高並行場景下如何實現系統限流?
- 降級和熔斷:如何增強服務穩定性?
- 如何選擇適合業務的負載均衡策略?
- 說一下的 dubbo 的工作原理?註冊中心掛了可以繼續通訊嗎?說說一次 rpc 請求的流程?
- dubbo 支援哪些通訊協定?支援哪些序列化協定?說一下Hessian 的資料結構?PB 知道嗎?為什麼 PB 的效率是最高的?
- dubbo 負載均衡策略和叢集容錯策略都有哪些?動態代理策略呢?
- 如何基於 dubbo 進行服務治理、服務降級、失敗重試以及超時重試?
- 分散式事務有哪些解決方案?
- 對比兩階段提交,三階段協定有哪些改進?
分散式學習筆記
一線大廠分散式實戰:
Redis相關面試題
- 為什麼要用 Redis /為什麼要用快取?
- Redis為什麼這麼快?
- Redis有哪些資料型別?
- Redis 的持久化機制是什麼?各自的優缺點?
- 我們知道通過expire來設定key 的過期時間,那麼對過期的資料怎麼處理呢?
- Redis的記憶體淘汰策略有哪些?
- Redis事務保證原子性嗎,支援回滾嗎?
- 快取高可用:快取如何保證高可用?
- redis 叢集模式的工作原理能說一下麼?
- 在叢集模式下,redis 的 key 是如何定址的?
- 分散式定址都有哪些演演算法?瞭解一致性 hash 演演算法嗎?
- redis 的並行競爭問題是什麼?如何解決這個問題?瞭解redis 事務的 CAS 方案嗎?
Redis學習筆記
最後
粉絲跟我分享了這件事,我把我所整理的一些學習筆記,面試題以及學習路線跟他分享了,我覺得這些都是很有用的東西,大家也可以跟著來學習,查漏補缺。
完整版獲取:
《Java高階面試》
《Java高階架構知識》
《演演算法知識》