不知道最近面試是否順利,是否會經常問到一些自己不熟悉的問題,不知道怎麼去回答這些問題,今天筆者給大家整理了2020年大廠經常問到了的一些面試真題及解析,內容點包含有java集合,jvm,並行程式設計,spring,mybatis,springMVC,微服務,Dubbo,netty,網路,zookeeper,kafka,rabbitMQ,readis快取,資料庫,設計模式 等一線大廠網際網路大廠常問到的面試真題,。
Java 集合面試真題22道:
- ArrayList 和 Vector 的區別。
- 說說 ArrayList,Vector, LinkedList 的儲存效能和特性。
- 快速失敗 (fail-fast) 和安全失敗 (fail-safe) 的區別是什麼?
- hashmap 的資料結構。
- HashMap 的工作原理是什麼?
- Hashmap 什麼時候進行擴容呢?
- List、Map、Set 三個介面,存取元素時,各有什麼特點?
- Set 裡的元素是不能重複的,那麼用什麼方法來區分重複與否呢?是用 == 還是 equals()? 它們有何區別?
- 兩個物件值相同 (x.equals(y) == true),但卻可有不同的 hashcode,這句話對不對?
- heap 和 stack 有什麼區別。
- Java 集合類框架的基本介面有哪些?
- HashSet 和 TreeSet 有什麼區別?
- HashSet 的底層實現是什麼?
- LinkedHashMap 的實現原理?
- 為什麼集合類沒有實現 Cloneable 和 Serializable 介面?
- 什麼是迭代器 (Iterator)?
- Iterator 和 ListIterator 的區別是什麼?
- 陣列 (Array) 和列表 (ArrayList) 有什麼區別?什麼時候應該使用 Array 而不是 ArrayList?
- Java 集合類框架的最佳實踐有哪些?
- Set 裡的元素是不能重複的,那麼用什麼方法來區分重複與否呢?是用 == 還是 equals()?它們有何區別?
- Comparable 和 Comparator 介面是幹什麼的?列出它們的區別。
- Collection 和 Collections 的區別。
JVM面試真題21道:
- Java 類載入過程?
- 描述一下 JVM 載入 Class 檔案的原理機制?
- Java 記憶體分配。
- GC 是什麼? 為什麼要有 GC?
- 簡述 Java 垃圾回收機制。
- 如何判斷一個物件是否存活?(或者 GC 物件的判定方法)
- 垃圾回收的優點和原理。並考慮 2 種回收機制。
- 垃圾回收器的基本原理是什麼?垃圾回收器可以馬上回收記憶體嗎?有什麼辦法主動通知虛擬機器器進行垃圾回收?
- Java 中會存在記憶體漏失嗎,請簡單描述。
- 深拷貝和淺拷貝。
- System.gc() 和 Runtime.gc() 會做什麼事情?
- finalize() 方法什麼時候被呼叫?解構函式 (finalization)的目的是什麼?
- 如果物件的參照被置為 null,垃圾收集器是否會立即釋放物件佔用的記憶體?
- 什麼是分散式垃圾回收(DGC)?它是如何工作的?
- 序列(serial)收集器和吞吐量(throughput)收集器的區別是什麼?
- 在 Java 中,物件什麼時候可以被垃圾回收?
- 簡 述 Java 內 存分 配與 回 收策 率以 及 Minor GC 和Major GC。
- JVM 的永久代中會發生垃圾回收麼?
- Java 中垃圾收集的方法有哪些?
- 什麼是類載入器,類載入器有哪些?
- 類載入器雙親委派模型機制?
並行程式設計面試真題38道:
Synchronized 相關問題:
- Synchronized 用過嗎,其原理是什麼?
- 你剛才提到獲取物件的鎖,這個「鎖」到底是什麼?如何確定物件的鎖?
- 什麼是可重入性,為什麼說 Synchronized 是可重入鎖?
- JVM 對 Java 的原生鎖做了哪些優化?
- 為什麼說 Synchronized 是非公平鎖?
- 什麼是鎖消除和鎖粗化?
- 為什麼說 Synchronized 是一個悲觀鎖?樂觀鎖的實現原理又是什麼?什麼是 CAS,它有什麼特性?
- 樂觀鎖一定就是好的嗎?
可重入鎖 ReentrantLock 及其他顯式鎖相關問題:
- 跟 Synchronized 相比,可重入鎖 ReentrantLock 其實現原理有什麼不同?
- 那麼請談談 AQS 框架是怎麼回事兒?
- 請儘可能詳盡地對比下 Synchronized 和 ReentrantLock 的異同。
- ReentrantLock 是如何實現可重入性的?
- 除了 ReetrantLock,你還接觸過 JUC 中的哪些並行工具?
- 請談談 ReadWriteLock 和 StampedLock。
- 如何讓 Java 的執行緒彼此同步?你瞭解過哪些同步器?請分別介紹下。
- CyclicBarrier 和 CountDownLatch 看起來很相似,請對比下呢?
Java 執行緒池相關問題:
- Java 中的執行緒池是如何實現的?
- 建立執行緒池的幾個核心構造引數?
- 執行緒池中的執行緒是怎麼建立的?是一開始就隨著執行緒池的啟動建立好的嗎?
- 既然提到可以通過設定不同引數建立出不同的執行緒池,那麼 Java 中預設實現好的執行緒池又有哪些呢?請比較它們的異同。
- 如何在 Java 執行緒池中提交執行緒?
Java 記憶體模型相關問題:
- 什麼是 Java 的記憶體模型,Java 中各個執行緒是怎麼彼此看到對方的變數的?
- 請談談 volatile 有什麼特點,為什麼它能保證變數對所有執行緒的可見性?
- 既然 volatile 能夠保證執行緒間的變數可見性,是不是就意味著基於volatile 變數的運算就是並行安全的?
- 請對比下 volatile 對比 Synchronized 的異同。
- 請談談 ThreadLocal 是怎麼解決並行安全的?
- 很多人都說要慎用 ThreadLocal,談談你的理解,使用 ThreadLocal 需要注意些什麼?
Spring面試真題25道:
- 什麼是 Spring 框架?Spring 框架有哪些主要模組?
- 使用 Spring 框架能帶來哪些好處?
- 什麼是控制反轉(IOC)?什麼是依賴注入?
- 請解釋下 Spring 框架中的 IoC?
- BeanFactory 和 ApplicationContext 有什麼區別?
- Spring 有幾種設定方式?
- 如何用基於 XML 設定的方式設定 Spring?
- 如何用基於 Java 設定的方式設定 Spring?
- 怎樣用註解的方式設定 Spring?
- 請解釋 Spring Bean 的生命週期?
- Spring Bean 的作用域之間有什麼區別?
- 什麼是 Spring inner beans?
- Spring 框架中的單例 Beans 是執行緒安全的麼?
- 請舉例說明如何在 Spring 中注入一個 Java Collection?
- 如何向 Spring Bean 中注入一個 Java.util.Properties?
- 請解釋 Spring Bean 的自動裝配?
- 請解釋自動裝配模式的區別?
- 如何開啟基於註解的自動裝配?
- 請舉例解釋@Required 註解?
- 請舉例解釋@Autowired 註解?
- 構造方法注入和設值注入有什麼區別?
- Spring 框架中有哪些不同型別的事件?
- FileSystemResource 和 ClassPathResource 有何區別?
- Spring 框架中都用到了哪些設計模式?
MyBatis面試真題24道:
- 什麼是 Mybatis?
- Mybaits 的優點:
- MyBatis 框架的缺點:
- MyBatis 框架適用場合:
- MyBatis 與 Hibernate 有哪些不同?
- #{}和${}的區別是什麼?
- 當實體類中的屬性名和表中的欄位名不一樣 ,怎麼辦 ?
- 模糊查詢 like 語句該怎麼寫?
- 通常一個 Xml 對映檔案,都會寫一個 Dao 介面與之對應,請問,這個 Dao 介面的工作原理是什麼?Dao 介面裡的方法,引數不同時,方法能過載嗎?
- Mybatis 是如何進行分頁的?分頁外掛的原理是什麼?
- Mybatis 是如何將 sql 執行結果封裝為目標物件並返回的?都有哪些對映形式?
- 如何執行批次插入?
- 如何獲取自動生成的(主)鍵值?
- Mybatis 動態 sql 有什麼用?執行原理?有哪些動態 sql?
- Xml 對映檔案中,除了常見的 select|insert|updae|delete 標籤之外,還有哪些標籤?
-
- Mybatis 的 Xml 對映檔案中,不同的 Xml 對映檔案,id 是否可以重複?
- 為什麼說 Mybatis 是半自動 ORM 對映工具?它與全自動的區別在哪裡?
- MyBatis 實現一對一有幾種方式?具體怎麼操作的?
- MyBatis 實現一對多有幾種方式,怎麼操作的?
- Mybatis 是否支援延遲載入?如果支援,它的實現原理是什麼?
- Mybatis 的一級、二級快取:
- 什麼是 MyBatis 的介面繫結?有哪些實現方式?
- 使用 MyBatis 的 mapper 介面呼叫時有哪些要求?
- 簡述 Mybatis 的外掛執行原理,以及如何編寫一個外掛。
後面還有關於 springMVC,微服務,Dubbo,netty,網路,zookeeper,kafka,rabbitMQ,readis快取,資料庫,設計模式,就不在這裡一一給大家展示了,
需要這份PDF面試資料的讀者朋友可以幫忙點贊後,私信【面試】就可以了(一定要記得關注我,不然沒辦法回覆陌生人私信)。希望大家都能夠拿到一個心怡的offer。