手撕面試官系列:BAT面試常問85題

JAVA架構發表於2019-08-02

JVM專題

手撕面試官系列:BAT面試常問85題

(面試題+答案領取方式見個人主頁)

Java 類載入過程?

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

Java 記憶體分配。

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

簡述 Java 垃圾回收機制。

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

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

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

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

深複製和淺複製。

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

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

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

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

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

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

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

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

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

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

資料庫專題

手撕面試官系列:BAT面試常問85題

請簡潔描述 MySQL 中 InnoDB 支援的四種事務隔離級別名稱,以及逐級之間的區別?

在 MySQL 中 ENUM 的用法是什麼?

CHAR 和 VARCHAR 的區別?

列的字串型別可以是什麼?

MySQL 中使用什麼儲存引擎?

TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 資料型別上做什麼?

主鍵和候選鍵有什麼區別?

MySQL 資料庫伺服器效能分析的方法命令有哪些?

LIKE 和 REGEXP 操作有什麼區別?

BLOB 和 TEXT 有什麼區別?

資料庫的三正規化?

MySQL 表中允許有多少個 TRIGGERS?

什麼是通用 SQL 函式?

MySQL 中有哪幾種鎖?

MySQL 資料最佳化。

MySQL 的關鍵字。

儲存引擎。

資料庫備份。

truncate delete drop 的區別。

Redis 是什麼?兩句話做一下概括。

Redis(管道,雜湊)。

Redis 實現原理或機制。

Redis 有兩種型別分割槽。

什麼是 MongoDB。

MongoDB 特點。

MongoDB 的功能。

MongoDB 的適用場景。

Redis、memcache、MongoDB 對比。

Redis 有什麼用?只有瞭解了它有哪些特性,我們在用的時候才能揚長避短,為我們所用。

集合框架主題

手撕面試官系列:BAT面試常問85題

ArrayList 和 Vector 的區別。

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

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

hashmap 的資料結構。

HashMap 的工作原理是什麼?

Hashmap 什麼時候進行擴容呢?

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

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

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

heap 和 stack 有什麼區別。

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

HashSet 和 TreeSet 有什麼區別?

HashSet 的底層實現是什麼?

LinkedHashMap 的實現原理?

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

什麼是迭代器 (Iterator)?

Iterator 和 ListIterator 的區別是什麼?

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

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

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

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

Collection 和 Collections 的區別。

多執行緒 / 高併發專題

手撕面試官系列:BAT面試常問85題

stop() 和 suspend() 方法為何不推薦使用?

sleep() 和 wait() 有什麼區別?

同步和非同步有何異同,在什麼情況下分別使用他們?

當一個執行緒進入一個物件的一個 synchronized 方法後,其它執行緒是否可進入此物件的其它方法?

簡述 synchronized 和 java.util.concurrent.locks.Lock 的異同?

概括的解釋下執行緒的幾種可用狀態。

什麼是 ThreadLocal?

run() 和 start() 區別。

請說出你所知道的執行緒同步的方法。

執行緒排程和執行緒控制。

什麼是執行緒餓死,什麼是活鎖?

多執行緒中的忙迴圈是什麼?

volatile 變數是什麼?volatile 變數和 atomic 變數有什麼不同?

volatile 型別變數提供什麼保證?能使得一個非原子操作變成原子操作嗎?


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

相關文章