前言:
又是跳槽的好季節,準備跳槽的同學都摩拳擦掌準備大面好幾場, 為大家準備了精選的面試題,

本套Java面試題大全總共分為以下這六個模塊:
-
Java基礎面試題
-
多執行緒面試題
-
Redis面試題
-
資料結構與演算法
-
Java例外面試題
-
JVM面試題
一、Java基礎面試題
1、&和&&的區別?
2、int和 Integer 有什么區別?(基本資料型別有哪些?)(String不是基本資料型別)
3、String、StringBuffer、 StringBuilder 的區別?
4、String 類的常用方法都有那些?
5、String 字串修改實作的原理?
6、兩個物件的 hashCode() 相同,則 equals() 也一定為 true 嗎?
7、解釋下什么是面向物件?面向物件和面向程序的區別?
8、Java 是否支持多繼承?
9、什么是建構式?什么是建構式多載?
10、Java 的泛型是如何作業的 ? 什么是型別擦除 ?
11、什么是泛型中的限定通配符和非限定通配符 ?
12、Java 中的 IO 流的分類?
二、多執行緒面試題
1、并發編程三要素?
2、實作可見性的方法有哪些?
3、多執行緒的價值?
4、創建執行緒的有哪些方式?
5、創建執行緒的三種方式的對比?
6、執行緒的狀態流轉圖
7、Java執行緒具有五中基本狀態
8、什么是執行緒池?有哪幾種創建方式?
9、四種執行緒池的創建
10、執行緒池的優點?
11、常用的并發工具類有哪些?
12、CyclicBarrier和CountDownLatch的區別
13、synchronized的作用?
14、volatile關鍵字的作用
15、什么是CAS
16、CAS的問題
17、什么是Future?
18、什么是AQS
19、AQS支持兩種同步方式:
20、ReadWriteLock是什么
21、FutureTask是什么
22、synchronized和ReentrantLock的區別
23、什么是樂觀鎖和悲觀鎖
24、執行緒B怎么知道執行緒A修改了變數
25、synchronized、volatile、CAS比較
26、sleep方法和wait方法有什么區別?
27、ThreadLocal是什么?有什么用?
28、為什么wait()方法和notify()/notifyAll()方法要在同步塊中被呼叫
29、多執行緒同步有哪幾種方法?
30、執行緒的調度策略
32、Linux環境下如何查找哪個執行緒使用CPU最長
33、Java死鎖以及如何避免?
34、死鎖的原因
35、怎么喚醒一個阻塞的執行緒
36、不可變物件對多執行緒有什么幫助
37、什么是多執行緒的背景關系切換
38、如果你提交任務時,執行緒池佇列已滿,這時會發生什么
39、Java中用到的執行緒調度演算法是什么
40、什么是執行緒調度器(Thread Scheduler)和時間分片(Time Slicing)?
41、什么是自旋
42、執行緒類的構造方法、靜態塊是被哪個執行緒呼叫的
43、同步方法和同步塊,哪個是更好的選擇?
44、Java執行緒數過多會造成什么例外?
三、Redis面試題
1、redis常見性能問題和解決方案:
2、mySQL里有2000w資料,redis中只存20w的資料,如何保證redis中的資料都是熱點資料
3、請用Redis和任意語言實作一段惡意登錄保護的代碼,限制1小時內每用戶Id最多只能登錄5次,具體登錄函式或功能用空函式即可,不用詳細寫出,
4、為什么redis需要把所有資料放到記憶體中?
5、redis的并發競爭問題如何解決?
6、redis事物的了解CAS(check-and-set 操作實作樂觀鎖 )?
7、redis持久化的幾種方式
8、redis的快取失效策略和主鍵失效機制
9、Redis集群方案什么情況下會導致整個集群不可用?
10、說說Redis哈希槽的概念?
四、資料結構與演算法:
1、常見的幾大排序及查找演算法及其時間復雜度?
2、求陣列中最長連續序列長度
3、在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序, 請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數,
4、兩個堆疊實作一個佇列,(美團、小米)
擴展:兩個佇列如何實作一個堆疊?
5、鏈表反轉(單項鏈表的反轉和雙向鏈表的反轉)
6、給Map排序---按照key的字母后按照格式[k1=v1:k2=v2]輸出(阿里旅行)
五、Java例外面試題:
1、Error 和 Exception 區別是什么?
2、運行時例外和一般例外(受檢例外)區別是什么?
3、JVM 是如何處理例外的?
4、throw 和 throws 的區別是什么?
5、final、finally、finalize 有什么區別?
6、NoClassDefFoundError 和 ClassNotFoundException 區別?
7、try-catch-finally 中哪個部分可以省略?
8、try-catch-finally 中,如果 catch 中 return 了,finally 還會執行嗎?
9、類 ExampleA 繼承 Exception,類 ExampleB 繼承ExampleA?
10、常見的 RuntimeException 有哪些?
11、Java常見例外有哪些?
六、JVM面試題:
1、Java記憶體區域
-
說一下 JVM 的主要組成部分及其作用?
-
說一下 JVM 運行時資料區?
-
深拷貝和淺拷貝?
-
說一下堆疊的區別?
-
佇列和堆疊是什么?有什么區別?
2、HotSpot虛擬機物件探秘
-
物件的創建
-
為物件分配記憶體
-
處理并發安全問題
-
物件的訪問定位
3、記憶體溢位例外
Java會存在記憶體泄漏嗎?請簡單描述
4、垃圾收集器
-
簡述Java垃圾回識訓制
-
GC是什么?為什么要GC
-
垃圾回收的優點和原理,并考慮2種回識訓制
-
垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收記憶體嗎?有什么辦法主動通知虛擬機進行垃圾回收?
-
Java 中都有哪些參考型別?
-
怎么判斷物件是否可以被回收?
-
在Java中,物件什么時候可以被垃圾回收
-
JVM中的永久代中會發生垃圾回收嗎
-
說一下 JVM 有哪些垃圾回收演算法?
-
說一下 JVM 有哪些垃圾回收器?
-
詳細介紹一下 CMS 垃圾回收器?
-
新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么區別?
-
簡述分代垃圾回收器是怎么作業的?
5、記憶體分配策略
①. 簡述java記憶體分配與回收策率以及Minor GC和Major GC
-
物件優先在 Eden 區分配
-
大物件直接進入老年代
-
長期存活物件將進入老年代
6、虛擬機類加載機制
-
簡述java類加載機制?
-
描述一下JVM加載Class檔案的原理機制
-
什么是類加載器,類加載器有哪些?
-
說一下類裝載的執行程序?
-
什么是雙親委派模型?
7、JVM調優
說一下 JVM 調優的工具?
常用的 JVM 調優的引數都有哪些?
答案獲取記得一鍵三連



答案獲取方式
先一鍵三連哦

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/163956.html
標籤:其他
