適宜閱讀人群
- 需要面試的初/中/高級 Java 程序員
- 想要查漏補缺的人
- 想要不斷完善和擴充自己 Java 技術(shù)棧的人
- Java 面試官
包含的模塊
本文分為十九個模塊,分別是: Java 基礎(chǔ)、容器、多線程、反射、對象拷貝、Java Web 、異常、網(wǎng)絡(luò)、設(shè)計模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM ,如下圖所示:
RabbitMQ
- RabbitMQ 的使用場景有哪些?
- RabbitMQ 有哪些重要的角色?
- RabbitMQ 有哪些重要的組件?
- RabbitMQ 中 vhost 的作用是什么?
- RabbitMQ 的消息是怎么發(fā)送的?
- RabbitMQ 怎么保證消息的穩(wěn)定性?
- RabbitMQ 怎么避免消息丟失?
- 要保證消息持久化成功的條件有哪些?
- RabbitMQ 持久化有什么缺點?
- RabbitMQ 有幾種廣播類型?
- RabbitMQ 怎么實現(xiàn)延遲消息隊列?
- RabbitMQ 集群有什么用?
- RabbitMQ 節(jié)點的類型有哪些?
- RabbitMQ 集群搭建需要注意哪些問題?
- RabbitMQ 每個節(jié)點是其他節(jié)點的完整拷貝嗎?為什么?
- RabbitMQ 集群中唯一一個磁盤節(jié)點崩潰了會發(fā)生什么情況?
- RabbitMQ 對集群節(jié)點停止順序有要求嗎?
Kafka
- kafka 可以脫離 zookeeper 單獨使用嗎?為什么?
- kafka 有幾種數(shù)據(jù)保留的策略?
- kafka 同時設(shè)置了 7 天和 10G 清除數(shù)據(jù),到第五天的時候消息達到了 10G,這個時候 kafka 將如何處理?
- 什么情況會導(dǎo)致 kafka 運行變慢?
- 使用 kafka 集群需要注意什么?
Zookeeper
- zookeeper 是什么?
- zookeeper 都有哪些功能?
- zookeeper 有幾種部署模式?
- zookeeper 怎么保證主從節(jié)點的狀態(tài)同步?
- 集群中為什么要有主節(jié)點?
- 集群中有 3 臺服務(wù)器,其中一個節(jié)點宕機,這個時候 zookeeper 還可以使用嗎?
- 說一下 zookeeper 的通知機制?
MySQL
- 數(shù)據(jù)庫的三范式是什么?
- 一張自增表里面總共有 7 條數(shù)據(jù),刪除了最后 2 條數(shù)據(jù),重啟 MySQL 數(shù)據(jù)庫,又插入了一條數(shù)據(jù),此時 id 是幾?
- 如何獲取當(dāng)前數(shù)據(jù)庫版本?
- 說一下 ACID 是什么?
- char 和 varchar 的區(qū)別是什么?
- float 和 double 的區(qū)別是什么?
- MySQL 的內(nèi)連接、左連接、右連接有什么區(qū)別?
- MySQL 索引是怎么實現(xiàn)的?
- 怎么驗證 MySQL 的索引是否滿足需求?
- 說一下數(shù)據(jù)庫的事務(wù)隔離?
- 說一下 MySQL 常用的引擎?
- 說一下 MySQL 的行鎖和表鎖?
- 說一下樂觀鎖和悲觀鎖?
- MySQL 問題排查都有哪些手段?
- 如何做 MySQL 的性能優(yōu)化?
Redis
- Redis 是什么?都有哪些使用場景?
- Redis 有哪些功能?
- Redis 和 memcache 有什么區(qū)別?
- Redis 為什么是單線程的?
- 什么是緩存穿透?怎么解決?
- Redis 支持的數(shù)據(jù)類型有哪些?
- Redis 支持的 Java 客戶端都有哪些?
- jedis 和 Redisson 有哪些區(qū)別?
- 怎么保證緩存和數(shù)據(jù)庫數(shù)據(jù)的一致性?
- Redis 持久化有幾種方式?
- Redis 怎么實現(xiàn)分布式鎖?
- Redis 分布式鎖有什么缺陷?
- Redis 如何做內(nèi)存優(yōu)化?
- Redis 淘汰策略有哪些?
- Redis 常見的性能問題有哪些?該如何解決?
JVM
- 說一下 JVM 的主要組成部分?及其作用?
- 說一下 JVM 運行時數(shù)據(jù)區(qū)?
- 說一下堆棧的區(qū)別?
- 隊列和棧是什么?有什么區(qū)別?
- 什么是雙親委派模型?
- 說一下類裝載的執(zhí)行過程?
- 怎么判斷對象是否可以被回收?
- Java 中都有哪些引用類型?
- 說一下 JVM 有哪些垃圾回收算法?
- 說一下 JVM 有哪些垃圾回收器?
- 詳細介紹一下 CMS 垃圾回收器?
- 新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么區(qū)別?
- 簡述分代垃圾回收器是怎么工作的?
- 說一下 JVM 調(diào)優(yōu)的工具?
- 常用的 JVM 調(diào)優(yōu)的參數(shù)都有哪些?
結(jié)尾
這不止是一份面試清單,更是一種“被期望的責(zé)任”,因為有無數(shù)個待面試著,希望從這篇文章中,找出通往期望公司的“鑰匙”,所以上面的每道選題都是結(jié)合我自身的經(jīng)驗,于千萬個面試題中經(jīng)過艱辛的兩周,一個題一個題篩選出來再校對好答案和格式做出來的,面試的答案也是再三斟酌,生怕誤人子弟是小,影響他人的“仕途”才是大過,所以如有紕漏,還請讀者朋友們在評論區(qū)不吝指出。
以上就是java面試最常見200+面試題里面的前135-208題,以下該面試題的部分參考答案。
面試題答案,獲取方式
請加QQ群:976203838
獲取以上面試題答案傳送門:https://shimo.im/docs/R6zZRIikthw8jifV
重要的話說三遍,先 關(guān)注,關(guān)注,關(guān)注,然后加群才可拿到參考答案哦!
