史上最強研發面試題整理:騰訊+百度+阿里+天貓+支付寶+美團+網易
阿新 • • 發佈:2020-10-22
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面試專題解析與拓展!
如果需要獲取到這些資料的話,一鍵三連之後加小助理微信即可免費獲取到