一、Java基礎:
部分一:
1、HashMap 、HashTable、TreeMap
(1)Hashmap 的底層實現
(2)HashTable和HashMap的區別?(重點)
(3)HashMap都有哪些種?
(4)treemap的實現
(5)HashMap和HashSet的實現原理
(6)HashMap和HashTable的區別,及其實現原理。ArrayList,LinkedList 和Vector的區別和實現原理。TreeMap和TreeSet區別和實現原理。ConcurrentHashMap實現原理(鎖分離技術)。
(7)hashMap等相關源碼
(8)hashmap的原理。
結合着源碼blabla,然後包括1.6時Entry,1.8是Node
還有對key的hashcode1.6和1.8用的算法不一樣啊之類的blabla,說了一通,什麼fail-fast機制啊啥啥啥的。
(9)java中hashMap結構,處理衝突方法,還有啥方法,各個方法優缺點,爲啥不用另一個有有點的方法。
2、Array與List的區別
3、(1)vector中內存擴充方式怎樣?爲什麼每次都有2被擴充?( 算法導論中平攤分析 )
(2)vector與list的區別
4、static的作用
5、(1)Java有哪些特性(封裝、繼承、多態之類的)
(2)如何實現多態?
6、(1)如何在main函數調用前處理一些事情
(2)main函數前會有什麼操作
7、ArrayList和LInkedList的比較
說ArrayList ,這裏就有技巧了舉一反三,我一般都是對比着LinkedList 來說 ,從實現機制、擴容機制等等方面來說
8、繼承的好處和壞處
9、 super()和this能不能同時使用
10、靜態類與單例模式的區別
11、面向對象的設計規範
12、接口和抽象類的區別
13、說一說對java io的理解
14、知不知道NIO
瞭解NIO嗎,Netty框架源碼看過嗎
15、juc包內有哪些類,CAS如何實現,說一下對線程池的理解
16、(1)map、list、set的區別
(2)map 源碼,怎樣解決衝突,和擴容
17、String、StringBuffer、StringBuilder區別,String爲什麼不可變
String和StringBuffer,StringBuilder區別和聯繫,String爲啥不可變,在內存中的具體形態。
String,是否可以繼承,“+”怎樣實現,與StringBuffer區別
18、java gc 請解釋
19、 Object的類都有哪些?
20、String 轉出 int型,判斷能不能轉?如何轉?
11 你用過的一些collection都有哪些
12 、反射機制中可以獲取private成員的值嗎(沒有set和get函數)
13、 equls 和 == 的區別
14、包裝類型和基本類型比較問題(例如,Integer類型的變量能否==int類型變量,能否作比較,什麼時候不能作比較)
15、java中異常機制。
16、comparable接口和comparator接口實現比較的區別和用法,Arrays靜態類如下實現排序的。
17、protected權限能否被包外訪問(我當時有點蒙竟然說能,出來就後悔了),然後問boolean佔幾個字節
18、C++/JAVA/C的區別
19、瞭解JS嗎
20、面向對象的特徵
21、java的集合,異常
22、JAVA中常用的集合
23、java異常
24、java內存模型
部分二
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<String>能否轉爲List<Object>。
33. 解析XML的幾種方式的原理與特點:DOM、SAX、PULL。
34. Java與C++對比。
35. Java1.7與1.8新特性。
36. 設計模式:單例、工廠、適配器、責任鏈、觀察者等等。
37. JNI的使用。