馬上進入求職招聘高峰,總結了一份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】即可獲取~
重要的話說三遍,先轉發,轉發,轉發,然後私信才可拿到必考題答案哦!
閱讀更多 優知學院 的文章