併發程式設計28題+JVM21題+Redis 16題+Java集合22題

java架構00發表於2020-10-24

大廠面試主要及經常問到技術點:

併發程式設計、多執行緒、JVM、最佳化、Spring、訊息框架、分散式、快取等以及你使用過的框架且第一輪的基礎很重要,透過會後錄取可能性就相對高了!

今天小編已經將這些大廠都常問的技術點的問題都整理出來了,希望能幫助到深夜還在為面試做準的朋友、後續準備面試的朋友。

面試題如下:

併發程式設計28題

  1. Synchronized 用過嗎,其原理是什麼?

  2. 你剛才提到獲取物件的鎖,這個“鎖”到底是什麼?如何確定物件的鎖?

  3. 什麼是可重入性,為什麼說 Synchronized 是可重入鎖?

  4. JVM 對 Java 的原生鎖做了哪些最佳化?

  5. 為什麼說 Synchronized 是非公平鎖?

  6. 什麼是鎖消除和鎖粗化?

  7. 為什麼說 Synchronized 是一個悲觀鎖?樂觀鎖的實現原理又是什麼?什麼是 CAS,它有什麼特性?

  8. 樂觀鎖一定就是好的嗎?

  9. 跟 Synchronized 相比,可重入鎖 ReentrantLock 其實現原理有什麼不同?

  10. 那麼請談談 AQS 框架是怎麼回事兒?

  11. 請儘可能詳盡地對比下 Synchronized 和 ReentrantLock 的異同。

  12. ReentrantLock 是如何實現可重入性的?

  13. 除了 ReetrantLock,你還接觸過 JUC 中的哪些併發工具?

  14. 請談談 ReadWriteLock 和 StampedLock。

  15. 如何讓 Java 的執行緒彼此同步?你瞭解過哪些同步器?請分別介紹下。

  16. CyclicBarrier 和 CountDownLatch 看起來很相似,請對比下呢?

  17. Java 執行緒池相關問題

  18. Java 中的執行緒池是如何實現的?

  19. 建立執行緒池的幾個核心構造引數?

  20. 執行緒池中的執行緒是怎麼建立的?是一開始就隨著執行緒池的啟動建立好的嗎?

  21. 既然提到可以透過配置不同引數建立出不同的執行緒池,那麼 Java 中預設實現好的執行緒池又有哪些呢?請比較它們的異同

  22. 如何在 Java 執行緒池中提交執行緒?

  23. 什麼是 Java 的記憶體模型,Java 中各個執行緒是怎麼彼此看到對方的變數的?

  24. 請談談 volatile 有什麼特點,為什麼它能保證變數對所有執行緒的可見性?

  25. 既然 volatile 能夠保證執行緒間的變數可見性,是不是就意味著基於 volatile 變數的運算就是併發安全的?

  26. 請對比下 volatile 對比 Synchronized 的異同。

  27. 請談談 ThreadLocal 是怎麼解決併發安全的?

  28. 很多人都說要慎用 ThreadLocal,談談你的理解,使用 ThreadLocal 需要注意些什麼?

以上就是大廠最常問的併發程式設計28題,小編這裡也收集了部分對應的學習資料。


JVM與調優21題

  1. Java 類載入過程?

  2. 描述一下 JVM 載入 Class 檔案的原理機制?

  3. Java 記憶體分配。

  4. GC 是什麼? 為什麼要有 GC?

  5. 簡述 Java 垃圾回收機制

  6. 如何判斷一個物件是否存活?(或者 GC 物件的判定方法)

  7. 垃圾回收的優點和原理。並考慮 2 種回收機制

  8. 垃圾回收器的基本原理是什麼?垃圾回收器可以馬上回收記憶體嗎?有什麼辦法主動通知虛擬機器進行垃圾回收?

  9. Java 中會存在記憶體洩漏嗎,請簡單描述

  10. 深複製和淺複製。

  11. System.gc() 和 Runtime.gc() 會做什麼事情?

  12. finalize() 方法什麼時候被呼叫?解構函式 (finalization) 的目的是什麼?

  13. 如果物件的引用被置為 null,垃圾收集器是否會立即釋放物件佔用的記憶體?

  14. 什麼是分散式垃圾回收(DGC)?它是如何工作的?

  15. 序列(serial)收集器和吞吐量(throughput)收集器的區別是什麼?

  16. 在 Java 中,物件什麼時候可以被垃圾回收?

  17. 簡述 Java 記憶體分配與回收策率以及 Minor GC 和 Major GC。

  18. JVM 的永久代中會發生垃圾回收麼?

  19. Java 中垃圾收集的方法有哪些?

  20. 什麼是類載入器,類載入器有哪些?

  21. 類載入器雙親委派模型機制?

以上就是大廠常問的JVM與調優21題,小編這裡也收集了部分對應的學習資料。資料獲取方式見文末!

圖片

Redis 16題

  1. 什麼是redis?

  2. Reids的特點

  3. Redis支援的資料型別

  4. Redis是單程式單執行緒的

  5. 虛擬記憶體

  6. Redis鎖

  7. 讀寫分離模型

  8. 資料分片模型

  9. Redis的回收策略

  10. 使用Redis有哪些好處?

  11. redis相比memcached有哪些優勢?

  12. redis常見效能問題和解決方案

  13. MySQL裡有2000w資料,redis中只存20w的資料,如何保證redis中的資料都是熱點資料

  14. Memcache與Redis的區別都有哪些?

  15. Redis 常見的效能問題都有哪些?如何解決?

  16. Redis 最適合的場景

以上就是大廠常問的Redis16題,部分對應的學習資料。資料獲取方式見文末!

Java集合22題

  1. ArrayList 和 Vector 的區別。

  2. 說說 ArrayList,Vector, LinkedList 的儲存效能和特性。

  3. 快速失敗 (fail-fast) 和安全失敗 (fail-safe) 的區別是什麼?

  4. hashmap 的資料結構。

  5. HashMap 的工作原理是什麼?

  6. Hashmap 什麼時候進行擴容呢?

  7. List、Map、Set 三個介面,存取元素時,各有什麼特點?

  8. Set 裡的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用 == 還是 equals()? 它們有何區別?

  9. 兩個物件值相同 (x.equals(y) == true),但卻可有不同的 hash code,這句話對不對?

  10. heap 和 stack 有什麼區別。

  11. Java 集合類框架的基本介面有哪些?

  12. HashSet 和 TreeSet 有什麼區別?

  13. HashSet 的底層實現是什麼?

  14. LinkedHashMap 的實現原理?

  15. 為什麼集合類沒有實現 Cloneable 和 Serializable 介面?

  16. 什麼是迭代器 (Iterator)?

  17. Iterator 和 ListIterator 的區別是什麼?

  18. 陣列 (Array) 和列表 (ArrayList) 有什麼區別?什麼時候應該使用 Array 而不是 ArrayList?

  19. Java 集合類框架的最佳實踐有哪些?

  20. Set 裡的元素是不能重複的,那麼用什麼方法來區分重複與否呢?是用 == 還是 equals()?它們有何區別?

  21. Comparable 和 Comparator 介面是幹什麼的?列出它們的區別

  22. Collection 和 Collections 的區別。

以上就是一線網際網路大廠常問Java集合22題,附對應學習資料圖。

spring 25題

  1. 什麼是 Spring 框架?Spring 框架有哪些主要模組?

  2. 使用 Spring 框架能帶來哪些好處?

  3. 什麼是控制反轉(IOC)?什麼是依賴注入?

  4. 請解釋下 Spring 框架中的 IoC?

  5. BeanFactory 和 ApplicationContext 有什麼區別?

  6. Spring 有幾種配置方式?

  7. 如何用基於 XML 配置的方式配置 Spring?

  8. 如何用基於 Java 配置的方式配置 Spring?

  9. 怎樣用註解的方式配置 Spring?

  10. 請解釋 Spring Bean 的生命週期?

  11. Spring Bean 的作用域之間有什麼區別?

  12. 什麼是 Spring inner beans?

  13. Spring 框架中的單例 Beans 是執行緒安全的麼?

  14. 請舉例說明如何在 Spring 中注入一個 Java Collection?

  15. 如何向 Spring Bean 中注入一個 Java.util.Properties?

  16. 請解釋 Spring Bean 的自動裝配?

  17. 請解釋自動裝配模式的區別?

  18. 如何開啟基於註解的自動裝配?

  19. 請舉例解釋@Required 註解?

  20. 請舉例解釋@Autowired 註解?

  21. 請舉例說明@Qualifier 註解?

  22. 構造方法注入和設值注入有什麼區別?

  23. Spring 框架中有哪些不同型別的事件?

  24. FileSystemResource 和 ClassPathResource 有何區別?

  25. Spring 框架中都用到了哪些設計模式?

Sping對應面試知識點複習資料,由於篇幅限制,這裡只展示目錄,需要獲取本文提及學習資料的朋友們可以關注我之後,掃一掃加"VX" 即可免費獲取

設計模式 10題

  1. 請列舉出在 JDK 中幾個常用的設計模式?

  2. 什麼是設計模式?你是否在你的程式碼裡面使用過任何設計模式?

  3. Java 中什麼叫單例設計模式?請用 Java 寫出執行緒安全的單例模式

  4. 在 Java 中,什麼叫觀察者設計模式(observer design pattern)?

  5. 使用工廠模式最主要的好處是什麼?在哪裡使用?

  6. 舉一個用 Java 實現的裝飾模式(decorator design pattern)?它是作用於物件層次還是類層次?

  7. 在 Java 中,為什麼不允許從靜態方法中訪問非靜態變數?

  8. 設計一個 ATM 機,請說出你的設計思路?

  9. 在 Java 中,什麼時候用過載,什麼時候用重寫?

  10. 舉例說明什麼情況下會更傾向於使用抽象類而不是介面

以上也是大廠面試常問設計模式10題,對應學習複習資料。

springboot 22題

  1. 什麼是 Spring Boot?

  2. Spring Boot 有哪些優點?

  3. 什麼是 JavaConfig?

  4. 如何重新載入 Spring Boot 上的更改,而無需重新啟動伺服器?

  5. Spring Boot 中的監視器是什麼?

  6. 如何在 Spring Boot 中禁用 Actuator 端點安全性?

  7. 如何在自定義埠上執行 Spring Boot 應用程式?

  8. 什麼是 YAML?

  9. 如何實現 Spring Boot 應用程式的安全性?

  10. 如何整合 Spring Boot 和 ActiveMQ?

  11. 如何使用 Spring Boot 實現分頁和排序?

  12. 什麼是 Swagger?你用 Spring Boot 實現了它嗎?

  13. 什麼是 Spring Profiles?

  14. 什麼是 Spring Batch?

  15. 什麼是 FreeMarker 模板?

  16. 如何使用 Spring Boot 實現異常處理?

  17. 您使用了哪些 starter maven 依賴項?

  18. 什麼是 CSRF 攻擊?

  19. 什麼是 WebSockets?

  20. 什麼是 AOP?

  21. 什麼是 Apache Kafka?

  22. 我們如何監視所有 Spring Boot 微服務?

以上就是一線網際網路大廠面試常問SpringBoot22題,附對應學習、複習資料圖

Netty10題

  1. BIO、NIO和AIO的區別?

  2. NIO的組成?

  3. Netty的特點?

  4. Netty的執行緒模型?

  5. TCP 粘包/拆包的原因及解決方法?

  6. 瞭解哪幾種序列化協議?

  7. 如何選擇序列化協議?

  8. Netty的零複製實現?

  9. Netty的高效能表現在哪些方面?

  10. NIOEventLoopGroup原始碼?

針對以上這些大廠面試常問技術點,本人這邊專門整理了一套對應的Java面經pdf文件複習資料,所含內容覆蓋極廣,特別適合一些即將面試或準備跳槽的Java開發者查缺補漏,需要獲取這套文件資料的讀者朋友們可以訂閱關注一下本人

資料獲取方式:掃一掃加"VX" 即可獲取這套Java面經pdf文件資料。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69985897/viewspace-2729379/,如需轉載,請註明出處,否則將追究法律責任。

相關文章