02.26 最新BAT資深Java面經合集:CMS+紅黑樹+線程狀態+事務隔離+中間件

馬上進入求職招聘高峰,總結了一份BAT(阿里、百度等)資深Java相關的面試題合集給到大家。

文末有相關的2019最新BAT資深java面試題答案~用於參考

JVM

JVM內存模型結構方法區和直接內存什麼時候會oom?JVM收集器G1的內存模型和CMS的內存模型有什麼不同?jvm調優用過嗎?如何查看java內存使用情況(jconsole、命令jmap、jstack等等)

集合

Arraylist、linkedlist差異,應用場景;HashMap在JDK1.8有哪些改動?HashCurrentMap和HashMap的區別在哪裡?Hashmap什麼時候使用紅黑樹?

多線程

線程的幾種狀態,請畫出具體的狀態流轉圖?Java wait、sleep的區別?volatile如何實現指令重排序?線程池中的阻塞隊列如果滿了怎麼辦(拒絕策略)?Synchronized和AQS異同,AQS公平非公平如何實現;多線程裡面對一個整型做加減為啥不能用volatile;voliatile和synchonized有什麼區別?synchonized和jdk提供的Lock包又有什麼區別?

算法

二叉樹寬度遍歷紅黑樹數據結構的話,鏈表,樹,圖的基本知識得懂瞭解樹的先序遍歷,中序遍歷,後序遍歷。圖的廣度優先搜索算法,深度優先搜索算法。

Spring

Bean的生命週期;什麼是DI、為什麼DI、DI的類型(構造器注入、方法注入);Spring boot和spring的差別,tomcat如何嵌入spring boot的/spring boot中的tomcat是如何啟動的;Spring如何解決循環依賴問題;

數據庫

Join(inner、left、right)的區別?Union和union all區別?ACID,具體是啥意思?事務隔離級別?幻讀和不可重複讀的區別?Mysql和mongodb有啥區別?

計算機網路

RPC和http的區別詳細描述TCP四次揮手過程

中間件

秒殺項目會使用到哪些中間件?為什麼Redis是單線程?如何保證Redis和數據庫雙寫一致?如何設計一個消息隊列中間件?分庫分表後,id主鍵如何處理?如何設計一個類似Dubbo的RPC?

以上就總結的資深BAT(阿里、百度等) Java面試題合集,以下最新總結的2019 BAT高級Java必考題答案,用於參考~

2019 BAT高級Java必考題答案

答案獲取方式

轉發後+回覆關鍵詞 【bat】即可獲取~

重要的話說三遍,先轉發,轉發,轉發,然後私信才可拿到必考題答案哦!