手撕面試官系列(十一):BAT面試必備之常問85題
JVM專題java
(面試題+答案領取方式見側邊欄)
- 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 中垃圾收集的方法有哪些?
- 類加載器雙親委派模型機制?
數據庫專題
- 請簡潔描述 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 有什麼用?只有瞭解了它有哪些特性,咱們在用的時候才能揚長避短,爲咱們所用。
集合框架主題
- 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 的區別。
多線程 / 高併發專題
- stop() 和 suspend() 方法爲什麼不推薦使用?
- sleep() 和 wait() 有什麼區別?
- 同步和異步有何異同,在什麼狀況下分別使用他們?
- 當一個線程進入一個對象的一個 synchronized 方法後,其它線程是否可進入此對象的其它方法?
- 簡述 synchronized 和 java.util.concurrent.locks.Lock 的異同?
- 歸納的解釋下線程的幾種可用狀態。
- 什麼是 ThreadLocal?
- run() 和 start() 區別。
- 請說出你所知道的線程同步的方法。
- 線程調度和線程控制。
- 什麼是線程餓死,什麼是活鎖?
- 多線程中的忙循環是什麼?
- volatile 變量是什麼?volatile 變量和 atomic 變量有什麼不一樣?
- volatile 類型變量提供什麼保證?能使得一個非原子操做變成原子操做嗎?
歡迎關注本站公眾號,獲取更多信息