java面試筆試題收集

轉載過來看看。。。。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. 實現多線程的兩種方法:

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的使用。

  Java Native Interface:

提示:

Java裏有不少很雜的東西,有時候須要你閱讀源碼,大多數可能書裏面講的不是太清楚,須要你在網上尋找答案。

推薦書籍:《java核心技術卷I》《Thinking in java》《java併發編程》《effictive java》《大話設計模式》

 

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. 分派:靜態分派與動態分派。

 提示:

JVM相關問題仍是比較固定的,內存模型和GC算法這塊問得比較多,能夠在網上多找幾篇博客來看看。

推薦書籍:《深刻理解java虛擬機》

 

操做系統

1. 進程和線程的區別。

2. 死鎖的必要條件,怎麼處理死鎖。

3. Window內存管理方式:段存儲,頁存儲,段頁存儲。

4. 進程的幾種狀態。

5. IPC幾種通訊方式。

6. 什麼是虛擬內存。

7. 虛擬地址、邏輯地址、線性地址、物理地址的區別。

推薦書籍:《深刻理解現代操做系統》

 

TCP/IP

1. OSI與TCP/IP各層的結構與功能,都有哪些協議。

2. TCP與UDP的區別。

3. TCP報文結構。

4. TCP的三次握手與四次揮手過程,各個狀態名稱與含義,TIMEWAIT的做用。

5. TCP擁塞控制。

6. TCP滑動窗口與回退N針協議。

7. Http的報文結構。

8. Http的狀態碼含義。

9. Http request的幾種類型。

10. Http1.1和Http1.0的區別

11. Http怎麼處理長鏈接。

12. Cookie與Session的做用於原理。

13. 電腦上訪問一個網頁,整個過程是怎麼樣的:DNS、HTTP、TCP、OSPF、IP、ARP。

14. Ping的整個過程。ICMP報文是什麼。

15. C/S模式下使用socket通訊,幾個關鍵函數。

16. IP地址分類。

17. 路由器與交換機區別。

 

網絡其實大致分爲兩塊,一個TCP協議,一個HTTP協議,只要把這兩塊以及相關協議搞清楚,通常問題不大。

推薦書籍:《TCP/IP協議族》

 

數據結構與算法 

1. 鏈表與數組。

2. 隊列和棧,出棧與入棧。

3. 鏈表的刪除、插入、反向。

4. 字符串操做。

5. Hash表的hash函數,衝突解決方法有哪些。

6. 各類排序:冒泡、選擇、插入、希爾、歸併、快排、堆排、桶排、基數的原理、平均時間複雜度、最壞時間複雜度、空間複雜度、是否穩定。

7. 快排的partition函數與歸併的Merge函數。

8. 對冒泡與快排的改進。

9. 二分查找,與變種二分查找。

10. 二叉樹、B+樹、AVL樹、紅黑樹、哈夫曼樹。

11. 二叉樹的前中後續遍歷:遞歸與非遞歸寫法,層序遍歷算法。

12. 圖的BFS與DFS算法,最小生成樹prim算法與最短路徑Dijkstra算法。

13. KMP算法。

14. 排列組合問題。

15. 動態規劃、貪心算法、分治算法。(通常不會問到)

16. 大數據處理:相似10億條數據找出最大的1000個數.........等等

 

算法的話實際上是個重點,由於最後都是要你寫代碼,因此算法仍是須要花很多時間準備,這裏有太多算法題,寫不全,個人建議是沒事多在OJ上刷刷題(牛客網、leetcode等),劍指offer上的算法要能理解並本身寫出來,編程之美也推薦看一看。

推薦書籍:《大話數據結構》《劍指offer》《編程之美》

相關文章
相關標籤/搜索