java面試基礎

來源:互聯網
上載者:User

標籤:art   zed   虛擬   歸併   訪問   泛型   對比   消費者模式   哈夫曼   

快面臨找工作了,留下了查看。。。。

基礎必備

基礎無外乎幾部分:語言(C/C++或java),作業系統,TCP/IP,資料結構與演算法,再加上你所熟悉的領域。

J2SE基礎

1. 九種基礎資料型別 (Elementary Data Type)的大小,以及他們的封裝類。

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

提示:

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》《編程之美》

 

java面試基礎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.