BAT最全133道Java面試題及答案(上)

多執行緒、併發及執行緒的基礎問題
1)Java 中能建立 volatile 陣列嗎?
2)volatile 能使得一個非原子操作變成原子操作嗎?
3)volatile 修飾符的有過什麼實踐?
4)volatile 型別變數提供什麼保證?
5) 10 個執行緒和 2 個執行緒的同步程式碼,哪個更容易寫?
6)你是如何呼叫 wait()方法的?使用 if 塊還是迴圈?為什麼?
7)什麼是多執行緒環境下的偽共享(false sharing)?

有經驗程式設計師的Java面試題
8)什麼是 Busy spin?我們為什麼要使用它?
9)Java 中怎麼獲取一份執行緒 dump 檔案?
10)Swing 是執行緒安全的?
11)什麼是執行緒區域性變數?
12)用 wait-notify 寫一段程式碼來解決生產者-消費者問題?
13) 用 Java 寫一個執行緒安全的單例模式(Singleton)?
14)Java 中 sleep 方法和 wait 方法的區別?
15)什麼是不可變物件(immutable object)?Java 中怎麼建立一個不可變物件?
16)我們能建立一個包含可變物件的不可變物件嗎?
資料型別和 Java 基礎面試問題
17)Java 中應該使用什麼資料型別來代表價格?
18)怎麼將 byte 轉換為 String?
19)Java 中怎樣將 bytes 轉換為 long 型別?
20)我們能將 int 強制轉換為 byte 型別的變數嗎?如果該值大於 byte 型別的範圍,將會出現什麼現象?
21)存在兩個類,B 繼承 A,C 繼承 B,我們能將 B 轉換為 C 麼?如 C = (C) B;
22)哪個類包含 clone 方法?是 Cloneable 還是 Object?
23)Java 中 ++ 操作符是執行緒安全的嗎?
26)3*0.1 == 0.3 將會返回什麼?true 還是 false?
27)int 和 Integer 哪個會佔用更多的記憶體?
28)為什麼 Java 中的 String 是不可變的(Immutable)?
29)我們能在 Switch 中使用 String 嗎?
30)Java 中的構造器鏈是什麼?
JVM 底層 與 GC(Garbage Collection) 的面試問題
31)64 位 JVM 中,int 的長度是多數?
32)Serial 與 Parallel GC之間的不同之處?
33)32 位和 64 位的 JVM,int 型別變數的長度是多數?
34)Java 中 WeakReference 與 SoftReference的區別?
36)JVM 選項 -XX:+UseCompressedOops 有什麼作用?為什麼要使用?
37)怎樣通過 Java 程式來判斷 JVM 是 32 位 還是 64 位?
38)32 位 JVM 和 64 位 JVM 的最大堆記憶體分別是多數?
39)JRE、JDK、JVM 及 JIT 之間有什麼不同?
3 年工作經驗的 Java 面試題
40)解釋 Java 堆空間及 GC?
JVM 底層面試題及答案
41)你能保證 GC 執行嗎?
42)怎麼獲取 Java 程式使用的記憶體?堆使用的百分比?
43)Java 中堆和棧有什麼區別?
關於記憶體的的面試問題和答案
Java 基本概念面試題
44)“a==b”和”a.equals(b)”有什麼區別?
45)a.hashCode() 有什麼用?與 a.equals(b) 有什麼關係?
46)final、finalize 和 finally 的不同之處?
47)Java 中的編譯期常量是什麼?使用它又什麼風險?
Java 集合框架的面試題
這部分也包含資料結構、演算法及陣列的面試問題
48) List、Set、Map 和 Queue 之間的區別
49)poll() 方法和 remove() 方法的區別?
50)Java 中 LinkedHashMap 和 PriorityQueue 的區別是什麼?
51)ArrayList 與 LinkedList 的不區別?
52)用哪兩種方式來實現集合的排序?
53)Java 中怎麼列印陣列?
54)Java 中的 LinkedList 是單向連結串列還是雙向連結串列?
55)Java 中的 TreeMap 是採用什麼樹實現的?
56) Hashtable 與 HashMap 有什麼不同之處?
57)Java 中的 HashSet,內部是如何工作的?
58)寫一段程式碼在遍歷 ArrayList 時移除一個元素?
59)我們能自己寫一個容器類,然後使用 for-each 迴圈嗎?
60)ArrayList 和 HashMap 的預設大小是多數?
61)有沒有可能兩個不相等的物件有有相同的 hashcode?
62)兩個相同的物件會有不同的的 hash code 嗎?
63)我們可以在 hashcode() 中使用隨機數字嗎?
64)Java 中,Comparator 與 Comparable 有什麼不同?
65)為什麼在重寫 equals 方法的時候需要重寫 hashCode 方法?
答案

部分面試答案資料截圖
完整面試答案資料:加群712477306即可獲取