美團Java面試真題
- java虛擬機內存模型
- 內存溢出一般發生在哪個區?永久代會不會導致內存溢出?
- 動態加載類的框架了解哪些?
- 動態代理一般有哪幾種實現方式?動態代理的應用場景有哪些?
- 棧會不會溢出?棧溢出一般拋什麼異常?jvm在哪裏設置棧的大小?設置的參數是什麼?
- 用過哪些命令查看jvm的狀態、堆棧信息?
- jvm的垃圾回收機制?
- java類加載機制?如何實現自定義類加載器?findClass與loadClass的區別?
- String、StringBuffer、StringBuilder的區別?對應的使用場景?
- 如何實現不可變的類?
- 淺複製和深複製?怎樣實現深複製?
- HashMap、HashTable、ConcurrentHashMap的區別?
- CAS是一種什麼樣的同步機制?
- NIO的原理,包括哪幾個組件?
- 簡單介紹一下java的反射機制?反射在哪些地方有應用場景?
- spring加載bean的流程?
- java線程池?線程池構造函數的幾個參數含義?keepAliveTime解釋一下?
- 一個接口,要去調用另外5個接口,每一個接口都會返回數據給這個調用接口,調用接口要對數據進行合併並返回給上層。這樣一種場景可能用到併發包下的哪些類?你會怎麼去實現這樣的業務場景?
- CountDownLatch和CyclicBarrier的區別?
- 線程加鎖有哪些方式?synchronized和lock的區別?
- volatile關鍵字的作用?爲什麼使用AtomicLong而不使用Long?AtomicLong的底層是怎麼實現的?
- mysql的存儲引擎有哪幾種?
- springmvc處理請求的流程?
- spring的事務怎麼使用?事務回滾?自定義異常?
- 髒讀?幻讀?
- tcp四次揮手的過程?TIME_WAIT爲什麼至少設置兩倍的MSL時間?
- get和post請求的區別?
- cookie和session的請求?
- 瞭解哪些開源的中間件?緩存?消息?分佈式框架?
- 用到過哪些設計模式?單例模式的實現?
- 數據庫的事務實現原理、操作過程、如何做到事物之間的獨立性等問題
- 數據庫的髒讀,幻讀,不可重複讀出現的原因原理,解決辦法
- 數據庫的隔離級別、MVCC
- 樂觀鎖、悲觀鎖、互斥鎖、讀寫鎖的原理實現與區別
- 線程的生命週期
- 一致性hash算法原理與應用
- CAP原則
- CAS操作
- 分佈式raft算法
面試經驗總結
總體來說可以分爲兩大塊:基礎知識和大型網站架構所用技術。
- 基礎知識
- 對基礎知識的考察是每個企業面試必不可少的一個環節。基礎就是一個崗位必須要熟悉並且熟練掌握的知識,包括編程語言的基礎語法、數據結構、 JVM 、算法、操作系統、計算機網絡、數據庫等。
- 後端技術體系 這裏所說的後端技術體系可以理解爲基於海量用戶處理的基礎上衍生出來的一系列高併發和分佈式處理技術。包括負載均衡、消息隊列、高可用、數據一致性、分佈式事務等技術或者基於這些技術實現的中間件。
總的來說 , 基礎是否紮實決定了是否能夠通過第一輪面試,主要考察面試者的基本功是否紮實。只要通過了第一輪面試,可以說至少已經成功了一大半。後端技術體系內技術決定了面試者面試評級或者第二三輪面試成敗。
讀者分享,共勉
假如離面試的時間非常接近了,這個時候看書的投資回報比就會比較低,最簡單粗暴的方式就是直接刷面經和麪試題。當然也少不了平時的積累!上面提到的Java後端面試高頻考點PDF文檔是免費分享,有需要的朋友可以幫忙轉發關注下,後臺私信回覆我【學習】即可獲得資料免費領取方式!
下面是我整理的一些Java學習筆記和後端技術點學習筆記導圖,對需要長期積累的朋友會大有幫助!
資料免費領取方式:轉發關注後,私信回覆我【學習】即可獲得資料免費領取方式!