華文網

Java程式大佬全面解析面試可能遇到的面試題,你能想到多少!

Java 面試隨著時間的改變而改變。在過去的日子裡,當你知道 String 和 StringBuilder 的區別(String 類型和 StringBuffer 類型的主要性能區別其實在於 String 是不可變的對象。

因此在每次對 String 類型進行改變的時候其實都等同于生成了一個新的 String 物件,

然後將指標指向新的 String 物件,所以經常改變內容的字串最好不要用 String ,因為每次生成物件都會對系統性能產生影響,特別當記憶體中無引用物件多了以後,JVM 的 GC 就會開始工作,影響性能,可以考慮使用可變字元序列StringBuilder)就能讓你直接進入第二輪面試,但是現在問題變得越來越高級,面試官問的問題也更深入。

下面是一些挺經典、全面的java面試問題

J2SE基礎:

1. 九種基底資料型別的大小,以及他們的封裝類。

2. Switch能否用string做參數?

3. equals與==的區別。

4. Object有哪些公用方法?

5. Java的四種引用,強弱軟虛,用到的場景。

6. Hashcode的作用。

7. ArrayList、LinkedList、Vector的區別。

8. String、StringBuffer與StringBuilder的區別。

9. Map、Set、List、Queue、Stack的特點與用法。

10. HashMap和HashTable的區別。

11. HashMap和ConcurrentHashMap的區別,HashMap的底層源碼。

12. TreeMap、HashMap、LindedHashMap的區別。

13. Collection包結構,與Collections的區別。

14. try catch finally,try裡有return,finally還執行麼?

15. Excption與Error包結構。OOM你遇到過哪些情況,

SOF你遇到過哪些情況。

16. Java物件導向的三個特徵與含義。

17. Override和Overload的含義去區別。

18. Interface與abstract類的區別。

19. Static class 與non static class的區別。

20. java多態的實現原理。

21. 實現多執行緒的兩種方法:Thread與Runable。

22. 執行緒同步的方法:sychronized、lock、reentrantLock等。

23. 鎖的等級:方法鎖、物件鎖、類鎖。

24. 寫出生產者消費者模式。

25. ThreadLocal的設計理念與作用。

26. ThreadPool用法與優勢。

27. Concurrent包裡的其他東西:ArrayBlockingQueue、CountDownLatch等等。

28. wait()和sleep()的區別。

29. foreach與正常for迴圈效率對比。

30. Java IO與NIO。

31. 反射的作用于原理。

32. 泛型常用特點,List能否轉為List

33. 解析XML的幾種方式的原理與特點:DOM、SAX、PULL。

34. Java與C++對比。

35. Java1.7與1.8新特性。

36. 設計模式:單例、工廠、適配器、責任鏈、觀察者等等。

37. JNI的使用。

JVM:

1. 記憶體模型以及分區,需要詳細到每個區放什麼。

2. 堆裡面的分區:Eden,survival from to,老年代,各自的特點。

3. 物件創建方法,物件的記憶體分配,物件的訪問定位。

4. GC的兩種判定方法:引用計數與引用鏈。

5. GC的三種收集方法:標記清除、標記整理、複製演算法的原理與特點,分別用在什麼地方,如果讓你優化收集方法,

有什麼思路?

6. GC收集器有哪些?CMS收集器與G1收集器的特點。

7. Minor GC與Full GC分別在什麼時候發生?

8. 幾種常用的記憶體調試工具:jmap、jstack、jconsole。

9. 類載入的五個過程:載入、驗證、準備、解析、初始化。

10. 雙親委派模型:Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。

11. 分派:靜態分派與動態分派。

總體來說java考察內容包括以下這些:

1,物件導向的一些基本概念:繼承,多態之類的

2, 抽象類別和介面

3, 靜態類,內部類

4, Java集合類,同步和非同步

5, Java類載入機制

6, Java記憶體模型和垃圾回收演算法

7, 執行緒同步機制(voliate,synchronized,重入鎖,threadlocal),執行緒間通信(wait,notify)

8, 異常處理

9, 多執行緒同步問題,生產者消費者,讀者寫者,哲學家就餐,用java實現

10, 瞭解java中設計模式的思想,用了哪些設計模式,有什麼好處

一位HR如果沒有相關專業知識,要想從簡歷上做出初步篩選:

Java程式師學習交流群515675832,既有技術大佬,又有老司機開車,各位對Java感興趣的可以來交流學習一下,快樂與技術一起進步。

Java程式師學習交流群515675832,既有技術大佬,又有老司機開車,各位對Java感興趣的可以來交流學習一下,快樂與技術一起進步。