java 面試

J2SE基礎(chǔ)

  1. 九種基本數(shù)據(jù)類(lèi)型的大小,以及他們的封裝類(lèi)。

  2. Switch能否用string做參數(shù)?

  3. equals與==的區(qū)別。

  4. Object有哪些公用方法?

  5. Java的四種引用,強(qiáng)弱軟虛,用到的場(chǎng)景。

  6. Hashcode的作用。

  7. ArrayList、LinkedList、Vector的區(qū)別。

  8. String、StringBuffer與StringBuilder的區(qū)別。

  9. Map、Set、List、Queue、Stack的特點(diǎn)與用法。

  10. HashMap和HashTable的區(qū)別。

  11. HashMap和ConcurrentHashMap的區(qū)別,HashMap的底層源碼。

  12. TreeMap、HashMap、LindedHashMap的區(qū)別。

  13. Collection包結(jié)構(gòu),與Collections的區(qū)別。

  14. try catch finally,try里有return,finally還執(zhí)行么?

  15. Excption與Error包結(jié)構(gòu)。OOM你遇到過(guò)哪些情況,SOF你遇到過(guò)哪些情況。

  16. Java面向?qū)ο蟮娜齻€(gè)特征與含義。

  17. Override和Overload的含義去區(qū)別。

  18. Interface與abstract類(lèi)的區(qū)別。

  19. Static class 與non static class的區(qū)別。

  20. java多態(tài)的實(shí)現(xiàn)原理。

  21. 實(shí)現(xiàn)多線程的兩種方法:Thread與Runable。

  22. 線程同步的方法:sychronized、lock、reentrantLock等。

  23. 鎖的等級(jí):方法鎖、對(duì)象鎖、類(lèi)鎖。

  24. 寫(xiě)出生產(chǎn)者消費(fèi)者模式。

  25. ThreadLocal的設(shè)計(jì)理念與作用。

  26. ThreadPool用法與優(yōu)勢(shì)。

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

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

  29. foreach與正常for循環(huán)效率對(duì)比。

  30. Java IO與NIO。

  31. 反射的作用于原理。

  32. 泛型常用特點(diǎn),List<String>能否轉(zhuǎn)為L(zhǎng)ist<Object>。

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

  34. Java與C++對(duì)比。

  35. Java1.7與1.8新特性。

  36. 設(shè)計(jì)模式:?jiǎn)卫?、工廠、適配器、責(zé)任鏈、觀察者等等。

  37. JNI的使用。

Java里有很多很雜的東西,有時(shí)候需要你閱讀源碼,大多數(shù)可能書(shū)里面講的不是太清楚,需要你在網(wǎng)上尋找答案。

推薦書(shū)籍:《java核心技術(shù)卷I》《Thinking in java》《java并發(fā)編程》《effictive java》《大話設(shè)計(jì)模式》

JVM

  1. 內(nèi)存模型以及分區(qū),需要詳細(xì)到每個(gè)區(qū)放什么。

  2. 堆里面的分區(qū):Eden,survival from to,老年代,各自的特點(diǎn)。

  3. 對(duì)象創(chuàng)建方法,對(duì)象的內(nèi)存分配,對(duì)象的訪問(wèn)定位。

  4. GC的兩種判定方法:引用計(jì)數(shù)與引用鏈。

  5. GC的三種收集方法:標(biāo)記清除、標(biāo)記整理、復(fù)制算法的原理與特點(diǎn),分別用在什么地方,如果讓你優(yōu)化收集方法,有什么思路?

  6. GC收集器有哪些?CMS收集器與G1收集器的特點(diǎn)。

  7. Minor GC與Full GC分別在什么時(shí)候發(fā)生?

  8. 幾種常用的內(nèi)存調(diào)試工具:jmap、jstack、jconsole。

  9. 類(lèi)加載的五個(gè)過(guò)程:加載、驗(yàn)證、準(zhǔn)備、解析、初始化。

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

  11. 分派:靜態(tài)分派與動(dòng)態(tài)分派。

JVM過(guò)去過(guò)來(lái)就問(wèn)了這么些問(wèn)題,沒(méi)怎么變,內(nèi)存模型和GC算法這塊問(wèn)得比較多,可以在網(wǎng)上多找?guī)灼┛蛠?lái)看看。

推薦書(shū)籍:《深入理解java虛擬機(jī)》

操作系統(tǒng)

  1. 進(jìn)程和線程的區(qū)別。

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

  3. Window內(nèi)存管理方式:段存儲(chǔ),頁(yè)存儲(chǔ),段頁(yè)存儲(chǔ)。

  4. 進(jìn)程的幾種狀態(tài)。

  5. IPC幾種通信方式。

  6. 什么是虛擬內(nèi)存。

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

因?yàn)槭亲鯽ndroid的這一塊問(wèn)得比較少一點(diǎn),還有可能上我簡(jiǎn)歷上沒(méi)有寫(xiě)操作系統(tǒng)的原因。

推薦書(shū)籍:《深入理解現(xiàn)代操作系統(tǒng)》

TCP/IP

  1. OSI與TCP/IP各層的結(jié)構(gòu)與功能,都有哪些協(xié)議。

  2. TCP與UDP的區(qū)別。

  3. TCP報(bào)文結(jié)構(gòu)。

  4. TCP的三次握手與四次揮手過(guò)程,各個(gè)狀態(tài)名稱(chēng)與含義,TIMEWAIT的作用。

  5. TCP擁塞控制。

  6. TCP滑動(dòng)窗口與回退N針協(xié)議。

  7. Http的報(bào)文結(jié)構(gòu)。

  8. Http的狀態(tài)碼含義。

  9. Http request的幾種類(lèi)型。

  10. Http1.1和Http1.0的區(qū)別

  11. Http怎么處理長(zhǎng)連接。

  12. Cookie與Session的作用于原理。

  13. 電腦上訪問(wèn)一個(gè)網(wǎng)頁(yè),整個(gè)過(guò)程是怎么樣的:DNS、HTTP、TCP、OSPF、IP、ARP。

  14. Ping的整個(gè)過(guò)程。ICMP報(bào)文是什么。

  15. C/S模式下使用socket通信,幾個(gè)關(guān)鍵函數(shù)。

  16. IP地址分類(lèi)。

  17. 路由器與交換機(jī)區(qū)別。

網(wǎng)絡(luò)其實(shí)大體分為兩塊,一個(gè)TCP協(xié)議,一個(gè)HTTP協(xié)議,只要把這兩塊以及相關(guān)協(xié)議搞清楚,一般問(wèn)題不大。

推薦書(shū)籍:《TCP/IP協(xié)議族》

數(shù)據(jù)結(jié)構(gòu)與算法

  1. 鏈表與數(shù)組。

  2. 隊(duì)列和棧,出棧與入棧。

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

  4. 字符串操作。

  5. Hash表的hash函數(shù),沖突解決方法有哪些。

  6. 各種排序:冒泡、選擇、插入、希爾、歸并、快排、堆排、桶排、基數(shù)的原理、平均時(shí)間復(fù)雜度、最壞時(shí)間復(fù)雜度、空間復(fù)雜度、是否穩(wěn)定。

  7. 快排的partition函數(shù)與歸并的Merge函數(shù)。

  8. 對(duì)冒泡與快排的改進(jìn)。

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

  10. 二叉樹(shù)、B+樹(shù)、AVL樹(shù)、紅黑樹(shù)、哈夫曼樹(shù)。

  11. 二叉樹(shù)的前中后續(xù)遍歷:遞歸與非遞歸寫(xiě)法,層序遍歷算法。

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

  13. KMP算法。

  14. 排列組合問(wèn)題。

  15. 動(dòng)態(tài)規(guī)劃、貪心算法、分治算法。(一般不會(huì)問(wèn)到)

  16. 大數(shù)據(jù)處理:類(lèi)似10億條數(shù)據(jù)找出最大的1000個(gè)數(shù)………等等

算法的話其實(shí)是個(gè)重點(diǎn),因?yàn)樽詈蠖际且銓?xiě)代碼,所以算法還是需要花不少時(shí)間準(zhǔn)備,這里有太多算法題,寫(xiě)不全,我的建議是沒(méi)事多在OJ上刷刷題(??途W(wǎng)、leetcode等),劍指offer上的算法要能理解并自己寫(xiě)出來(lái),編程之美也推薦看一看。

推薦書(shū)籍:《大話數(shù)據(jù)結(jié)構(gòu)》《劍指offer》《編程之美》

Android

  1. Activity與Fragment的生命周期。

  2. Acitivty的四中啟動(dòng)模式與特點(diǎn)。

  3. Activity緩存方法。

  4. Service的生命周期,兩種啟動(dòng)方法,有什么區(qū)別。

  5. 怎么保證service不被殺死。

  6. 廣播的兩種注冊(cè)方法,有什么區(qū)別。

  7. Intent的使用方法,可以傳遞哪些數(shù)據(jù)類(lèi)型。

  8. ContentProvider使用方法。

  9. Thread、AsycTask、IntentService的使用場(chǎng)景與特點(diǎn)。

  10. 五種布局: FrameLayout 、 LinearLayout 、 AbsoluteLayout 、 RelativeLayout 、TableLayout 各自特點(diǎn)及繪制效率對(duì)比。

  11. Android的數(shù)據(jù)存儲(chǔ)形式。

  12. Sqlite的基本操作。

  13. Android中的MVC模式。

  14. Merge、ViewStub的作用。

  15. Json有什么優(yōu)劣勢(shì)。

  16. 動(dòng)畫(huà)有哪兩類(lèi),各有什么特點(diǎn)?

  17. Handler、Loop消息隊(duì)列模型,各部分的作用。

  18. 怎樣退出終止App。

  19. Asset目錄與res目錄的區(qū)別。

  20. Android怎么加速啟動(dòng)Activity。

  21. Android內(nèi)存優(yōu)化方法:ListView優(yōu)化,及時(shí)關(guān)閉資源,圖片緩存等等。

  22. Android中弱引用與軟引用的應(yīng)用場(chǎng)景。

  23. Bitmap的四中屬性,與每種屬性隊(duì)形的大小。

  24. View與View Group分類(lèi)。自定義View過(guò)程:onMeasure()、onLayout()、onDraw()。

  25. Touch事件分發(fā)機(jī)制。

  26. Android長(zhǎng)連接,怎么處理心跳機(jī)制。

  27. Zygote的啟動(dòng)過(guò)程。

  28. Android IPC:Binder原理。

  29. 你用過(guò)什么框架,是否看過(guò)源碼,是否知道底層原理。

  30. Android5.0、6.0新特性。

計(jì)劃:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容