多線程
- 有什麼方法能夠監控線程的狀態
- synchronized 的做用
- synchronized 底層是怎麼實現的
- synchronized 有哪幾個使用方式
- 修飾方法和修飾代碼塊有什麼不一樣
- synchronized 爲何要添加對象鎖,即 synchronized () 中,爲何要有這個括號裏面的內容
- 說下併發包和 synchronized 的區別
- 說下 Java 內存模型是什麼
- volatile 做用是什麼
- volatile 底層是怎麼實現的,從指令層面分析
- 爲何不用 volatile 修飾每一個變量呢
- ThreadLocal 瞭解嗎
- CountDownLatch 瞭解嗎
- 列舉有哪些線程池
- 只有一個線程的線程池有什麼做用,是來搞笑的嗎
- ThreadPoolExecutor 類的構造參數有哪些
- 若是程序一直在添加任務,線程池的處理過程是怎樣的,結合構造參數來解釋
jvm
- 有哪些 gc 算法
- 什麼對象剛建立的時候直接進入老年代,非字符串對象
- 什麼對象能夠進入老年代
- 新生代的 s2 區有什麼做用
- 什麼狀況下會 OOM
- 說下一個對象從建立到銷燬的整個過程
redis
- 排行榜怎麼設計
- 有序集合增長元素的時間複雜度是多少
- AOF 和 RDB 的區別
- redis 有大量任務須要消費,如今有兩種消費方案,有什麼不一樣?
- 由一個開了 30 個線程的線程池不斷消費
- 3 個線程不斷獲取 redis 任務,並將任務傳給一個開了 30 個線程的線程池處理
其餘
- hashtable 和 ConcurrentHashMap 有什麼不一樣
- ConcurrentHashMap 如何保證線程安全,1.7 和 1.8 都說下
- NIO 和 BIO 的區別
- NIO 的經典實現是怎樣的(這個問題我不太肯定,當時有點懵)
mysql
- explain 做用
- 通常看 explain 輸出信息的哪些內容
- 表有 a、b、c 字段,其餘a、b獨立建個索引,則下面的 sql 通過 explain 後會輸出什麼信息,哪些字段會走索引,哪些不會 select * from table where a = xx and b = yy order by c;
場景題
PS:本文原創發佈於微信公衆號「不僅Java」,後臺回覆「電子書」,說不定有你想要的呢。mysql