手撕面試官系列(十一):BAT面試必備之常問85題

JVM專題java

(面試題+答案領取方式見側邊欄) 

  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 和 MajorGC。
  18. JVM 的永久代中會發生垃圾回收麼?
  19. Java 中垃圾收集的方法有哪些?
  20. 類加載器雙親委派模型機制?

數據庫專題

 

  1. 請簡潔描述 MySQL 中 InnoDB 支持的四種事務隔離級別名稱,以及逐級之間的區別?
  2. 在 MySQL 中 ENUM 的用法是什麼?
  3. CHAR 和 VARCHAR 的區別?
  4. 列的字符串類型能夠是什麼?
  5. MySQL 中使用什麼存儲引擎?
  6. TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 數據類型上作什麼?
  7. 主鍵和候選鍵有什麼區別?
  8. MySQL 數據庫服務器性能分析的方法命令有哪些?
  9. LIKE 和 REGEXP 操做有什麼區別?
  10. BLOB 和 TEXT 有什麼區別?
  11. 數據庫的三範式?
  12. MySQL 表中容許有多少個 TRIGGERS?
  13. 什麼是通用 SQL 函數?
  14. MySQL 中有哪幾種鎖?
  15. MySQL 數據優化。
  16. MySQL 的關鍵字。
  17. 存儲引擎。
  18. 數據庫備份。
  19. truncate delete drop 的區別。
  20. Redis 是什麼?兩句話作一下歸納。
  21. Redis(管道,哈希)。
  22. Redis 實現原理或機制。
  23. Redis 有兩種類型分區。
  24. 什麼是 MongoDB。
  25. MongoDB 特色。
  26. MongoDB 的功能。
  27. MongoDB 的適用場景。
  28. Redis、memcache、MongoDB 對比。
  29. Redis 有什麼用?只有瞭解了它有哪些特性,咱們在用的時候才能揚長避短,爲咱們所用。

集合框架主題

 

  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 的區別。

多線程 / 高併發專題

 

  1. stop() 和 suspend() 方法爲什麼不推薦使用?
  2. sleep() 和 wait() 有什麼區別?
  3. 同步和異步有何異同,在什麼狀況下分別使用他們?
  4. 當一個線程進入一個對象的一個 synchronized 方法後,其它線程是否可進入此對象的其它方法?
  5. 簡述 synchronized 和 java.util.concurrent.locks.Lock 的異同?
  6. 歸納的解釋下線程的幾種可用狀態。
  7. 什麼是 ThreadLocal?
  8. run() 和 start() 區別。
  9. 請說出你所知道的線程同步的方法。
  10. 線程調度和線程控制。
  11. 什麼是線程餓死,什麼是活鎖?
  12. 多線程中的忙循環是什麼?
  13. volatile 變量是什麼?volatile 變量和 atomic 變量有什麼不一樣?
  14. volatile 類型變量提供什麼保證?能使得一個非原子操做變成原子操做嗎?
相關文章
相關標籤/搜索