
01 Java基礎
- List 和 Set 的區別
- HashSet 是如何保證不重復的
- HashMap 是執行緒安全的嗎,為什么不是執行緒安全的(最好畫圖說明多執行緒環境下不安全)?
- HashMap 1.7 與 1.8 的 區別,說明 1.8 做了哪些優化,如何優化的?
- final finally finalize
- 強參考 、軟參考、 弱參考、虛參考
- Java反射
- Arrays.sort 實作原理和 Collection 實作原理
- LinkedHashMap的應用
- cloneable介面實作原理
- 例外分類以及處理機制
- wait和sleep的區別
02 Java 并發
- synchronized 的實作原理以及鎖優化?
- volatile 的實作原理?
- Java 的信號燈?
- synchronized 在靜態方法和普通方法的區別?
- 怎么實作所有執行緒在等待某個事件的發生才會去執行?
- CAS?CAS 有什么缺陷,如何解決?
- synchronized 和 lock 有什么區別?
- Hashtable 是怎么加鎖的 ?
- HashMap 的并發問題?
- ConcurrenHashMap 介紹?1.8 中為什么要用紅黑樹?
- AQS
- 如何檢測死鎖?怎么預防死鎖?
- Java 記憶體模型?
- 如何保證多執行緒下 i++ 結果正確?
- 執行緒池的種類,區別和使用場景?
- 分析執行緒池的實作原理和執行緒的調度程序?
- 執行緒池如何調優,最大數目如何確認?
- ThreadLocal原理,用的時候需要注意什么
- CountDownLatch 和 CyclicBarrier 的用法,以及相互之間的差別?
- LockSupport工具
- Condition介面及其實作原理
- Fork/Join框架的理解
- 分段鎖的原理,鎖力度減小的思考
- 八種阻塞佇列以及各個阻塞佇列的特性
03 Spring
- BeanFactory 和 FactoryBean
- Spring IOC 的理解,其初始化程序?
- BeanFactory 和 ApplicationContext?
- Spring Bean 的生命周期,如何被管理的?Spring Bean 的加載程序是怎樣的?
- 如果要你實作Spring AOP,請問怎么實作?
- 如果要你實作Spring IOC,你會注意哪些問題?
- Spring 是如何管理事務的,事務管理機制?
- Spring 的不同事務傳播行為有哪些,干什么用的?
- Spring 中用到了那些設計模式?
- Spring MVC 的作業原理?
- Spring 回圈注入的原理?
- Spring 如何保證 Controller 并發的安全?
05 分布式相關
- Dubbo的底層實作原理和機制
- 描述一個服務從發布到被消費的詳細程序
- 分布式系統怎么做服務治理
- 介面的冪等性的概念
- 訊息中間件如何解決訊息丟失問題
- Dubbo的服務請求失敗怎么處理
- 重連機制會不會造成錯誤
- 對分布式事務的理解
- 如何實作負載均衡,有哪些演算法可以實作?
- Zookeeper的用途,選舉的原理是什么?
- 資料的垂直拆分水平拆分,
- zookeeper原理和適用場景
- zookeeper watch機制
- redis/zk節點宕機如何處理
- 分布式集群下如何做到唯一序列號
- 如何做一個分布式鎖
- 用過哪些MQ,怎么用的,和其他mq比較有什么優缺點,MQ的連接是執行緒安全的嗎
- MQ系統的資料如何保證不丟失
- 列舉出你能想到的資料庫分庫分表策略;分庫分表后,如何解決全表查詢的問題
- zookeeper的選舉策略
06 資料庫
- 事務四大特性(ACID)原子性、一致性、隔離性、持久性?
- 事務的并發?事務隔離級別,每個級別會引發什么問題,MySQL默認是哪個級別?
- MySQL常見的三種存盤引擎(InnoDB、MyISAM、MEMORY)的區別?
- MySQL的MyISAM與InnoDB兩種存盤引擎在,事務、鎖級別,各自的適用場景?
- 查詢陳述句不同元素(where、jion、limit、group by、having等等)執行先后順序?
- 什么是臨時表,臨時表什么時候洗掉?
- MySQL B+Tree索引和Hash索引的區別?
- sql查詢陳述句確定創建哪種型別的索引?如何優化查詢?
- 聚集索引和非聚集索引區別?
- 有哪些鎖(樂觀鎖悲觀鎖),select 時怎么加排它鎖?
- 非關系型資料庫和關系型資料庫區別,優勢比較?
- 資料庫三范式,根據某個場景設計資料表?
- 資料庫的讀寫分離、主從復制,主從復制分析的 7 個問題?
- 使用explain優化sql和索引?
- MySQL慢查詢怎么解決?
- 什么是 內連接、外連接、交叉連接、笛卡爾積等?
- mysql都有什么鎖,死鎖判定原理和具體場景,死鎖怎么解決?
- varchar和char的使用場景?
- mysql 高并發環境解決方案?
- 資料庫崩潰時事務的恢復機制(REDO日志和UNDO日志)?
07 Redis
- Redis用過哪些資料資料,以及Redis底層怎么實作
- Redis快取穿透,快取雪崩
- 如何使用Redis來實作分布式鎖
- Redis的并發競爭問題如何解決
- Redis持久化的幾種方式,優缺點是什么,怎么實作的
- Redis的快取失效策略
- Redis集群,高可用,原理
- Redis快取分片,Redis的資料淘汰策略
08 Netty
- BIO、NIO和AIO
- Netty 的各大組件,Netty的執行緒模型
- TCP 粘包/拆包的原因及解決方法
- 了解哪幾種序列化協議?包括使用場景和如何去選擇
- Netty的零拷貝實作
- Netty的高性能表現在哪些方面
09 JVM
- 詳細jvm記憶體模型
- 講講什么情況下回出現記憶體溢位,記憶體泄漏?
- 說說Java執行緒堆疊
- JVM 年輕代到年老代的晉升程序的判斷條件是什么呢?
- JVM 出現 fullGC 很頻繁,怎么去線上排查問題?
- 類加載為什么要使用雙親委派模式,有沒有什么場景是打破了這個模式?
- 類的實體化順序
- JVM垃圾回識訓制,何時觸發MinorGC等操作
- JVM 中一次完整的 GC 流程(從 ygc 到 fgc)是怎樣的
- 各種回收器,各自優缺點,重點CMS、G1
- 各種回收演算法
- OOM錯誤,stackoverflow錯誤,permgen space錯誤
乘著這波長假,給大家分享我收集的面試資料, 希望你們領取以后都能拿到BAT的offer!
面試題順序:ActiveMQ+redis+Spring+高并發多執行緒+JVM
答案獲取

ActiveMQ訊息中間件面試專題
- 什么是ActiveMQ?
- ActiveMQ服務器宕機怎么辦?
- 丟訊息怎么辦?
- 持久化訊息非常慢怎么辦?
- 訊息的不均勻消費怎么辦?
- 死信佇列怎么辦?
- ActiveMQ中的訊息重發時間間隔和重發次數嗎?
ActiveMQ訊息中間件面試專題決議拓展:

redis面試專題及答案
- 支持一致性哈希的客戶端有哪些?
- Redis與其他key-value存盤有什么不同?
- Redis的記憶體占用情況怎么樣?
- 都有哪些辦法可以降低Redis的記憶體使用情況呢?
- 查看Redis使用情況及狀態資訊用什么命令?
- Redis的記憶體用完了會發生什么?
- Redis是單執行緒的,如何提高多核CPU的利用率?

Spring面試專題及答案
- 談談你對 Spring 的理解
- Spring 有哪些優點?
- Spring 中的設計模式
- 怎樣開啟注解裝配以及常用注解
- 簡單介紹下 Spring bean 的生命周期
Spring面試答案決議拓展

高并發多執行緒面試專題
- 現在有執行緒 T1、T2 和 T3,你如何確保 T2 執行緒在 T1 之后執行,并且 T3 執行緒在 T2 之后執行?
- Java 中新的 Lock 介面相對于同步代碼塊(synchronized block)有什么優勢?如果讓你實作一個高性能快取,支持并發讀取和單一寫入,你如何保證資料完整性,
- Java 中 wait 和 sleep 方法有什么區別?
- 如何在 Java 中實作一個阻塞佇列?
- 如何在 Java 中撰寫代碼解決生產者消費者問題?
- 寫一段死鎖代碼,你在 Java 中如何解決死鎖?
高并發多執行緒面試決議與拓展

jvm面試專題與決議
- JVM 由哪些部分組成?
- JVM 記憶體劃分?
- Java 的記憶體模型?
- 參考的分類?
- GC什么時候開始?
JVM面試專題決議與拓展!

如果需要獲取到這些資料的話,一鍵三連之后加小助理微信即可免費獲取到


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/185965.html
標籤:其他
