J2SE基礎(chǔ)
九種基本數(shù)據(jù)類(lèi)型的大小,以及他們的封裝類(lèi)。
Switch能否用string做參數(shù)?
equals與==的區(qū)別。
Object有哪些公用方法?
Java的四種引用,強(qiáng)弱軟虛,用到的場(chǎng)景。
Hashcode的作用。
ArrayList、LinkedList、Vector的區(qū)別。
String、StringBuffer與StringBuilder的區(qū)別。
Map、Set、List、Queue、Stack的特點(diǎn)與用法。
HashMap和HashTable的區(qū)別。
HashMap和ConcurrentHashMap的區(qū)別,HashMap的底層源碼。
TreeMap、HashMap、LindedHashMap的區(qū)別。
Collection包結(jié)構(gòu),與Collections的區(qū)別。
try catch finally,try里有return,finally還執(zhí)行么?
Excption與Error包結(jié)構(gòu)。OOM你遇到過(guò)哪些情況,SOF你遇到過(guò)哪些情況。
Java面向?qū)ο蟮娜齻€(gè)特征與含義。
Override和Overload的含義去區(qū)別。
Interface與abstract類(lèi)的區(qū)別。
Static class 與non static class的區(qū)別。
java多態(tài)的實(shí)現(xiàn)原理。
實(shí)現(xiàn)多線程的兩種方法:Thread與Runable。
線程同步的方法:sychronized、lock、reentrantLock等。
鎖的等級(jí):方法鎖、對(duì)象鎖、類(lèi)鎖。
寫(xiě)出生產(chǎn)者消費(fèi)者模式。
ThreadLocal的設(shè)計(jì)理念與作用。
ThreadPool用法與優(yōu)勢(shì)。
Concurrent包里的其他東西:ArrayBlockingQueue、CountDownLatch等等。
wait()和sleep()的區(qū)別。
foreach與正常for循環(huán)效率對(duì)比。
Java IO與NIO。
反射的作用于原理。
泛型常用特點(diǎn),List<String>能否轉(zhuǎn)為L(zhǎng)ist<Object>。
解析XML的幾種方式的原理與特點(diǎn):DOM、SAX、PULL。
Java與C++對(duì)比。
Java1.7與1.8新特性。
設(shè)計(jì)模式:?jiǎn)卫?、工廠、適配器、責(zé)任鏈、觀察者等等。
JNI的使用。
Java里有很多很雜的東西,有時(shí)候需要你閱讀源碼,大多數(shù)可能書(shū)里面講的不是太清楚,需要你在網(wǎng)上尋找答案。
推薦書(shū)籍:《java核心技術(shù)卷I》《Thinking in java》《java并發(fā)編程》《effictive java》《大話設(shè)計(jì)模式》
JVM
內(nèi)存模型以及分區(qū),需要詳細(xì)到每個(gè)區(qū)放什么。
堆里面的分區(qū):Eden,survival from to,老年代,各自的特點(diǎn)。
對(duì)象創(chuàng)建方法,對(duì)象的內(nèi)存分配,對(duì)象的訪問(wèn)定位。
GC的兩種判定方法:引用計(jì)數(shù)與引用鏈。
GC的三種收集方法:標(biāo)記清除、標(biāo)記整理、復(fù)制算法的原理與特點(diǎn),分別用在什么地方,如果讓你優(yōu)化收集方法,有什么思路?
GC收集器有哪些?CMS收集器與G1收集器的特點(diǎn)。
Minor GC與Full GC分別在什么時(shí)候發(fā)生?
幾種常用的內(nèi)存調(diào)試工具:jmap、jstack、jconsole。
類(lèi)加載的五個(gè)過(guò)程:加載、驗(yàn)證、準(zhǔn)備、解析、初始化。
雙親委派模型:Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。
分派:靜態(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)
進(jìn)程和線程的區(qū)別。
死鎖的必要條件,怎么處理死鎖。
Window內(nèi)存管理方式:段存儲(chǔ),頁(yè)存儲(chǔ),段頁(yè)存儲(chǔ)。
進(jìn)程的幾種狀態(tài)。
IPC幾種通信方式。
什么是虛擬內(nèi)存。
虛擬地址、邏輯地址、線性地址、物理地址的區(qū)別。
因?yàn)槭亲鯽ndroid的這一塊問(wèn)得比較少一點(diǎn),還有可能上我簡(jiǎn)歷上沒(méi)有寫(xiě)操作系統(tǒng)的原因。
推薦書(shū)籍:《深入理解現(xiàn)代操作系統(tǒng)》
TCP/IP
OSI與TCP/IP各層的結(jié)構(gòu)與功能,都有哪些協(xié)議。
TCP與UDP的區(qū)別。
TCP報(bào)文結(jié)構(gòu)。
TCP的三次握手與四次揮手過(guò)程,各個(gè)狀態(tài)名稱(chēng)與含義,TIMEWAIT的作用。
TCP擁塞控制。
TCP滑動(dòng)窗口與回退N針協(xié)議。
Http的報(bào)文結(jié)構(gòu)。
Http的狀態(tài)碼含義。
Http request的幾種類(lèi)型。
Http1.1和Http1.0的區(qū)別
Http怎么處理長(zhǎng)連接。
Cookie與Session的作用于原理。
電腦上訪問(wèn)一個(gè)網(wǎng)頁(yè),整個(gè)過(guò)程是怎么樣的:DNS、HTTP、TCP、OSPF、IP、ARP。
Ping的整個(gè)過(guò)程。ICMP報(bào)文是什么。
C/S模式下使用socket通信,幾個(gè)關(guān)鍵函數(shù)。
IP地址分類(lèi)。
路由器與交換機(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)與算法
鏈表與數(shù)組。
隊(duì)列和棧,出棧與入棧。
鏈表的刪除、插入、反向。
字符串操作。
Hash表的hash函數(shù),沖突解決方法有哪些。
各種排序:冒泡、選擇、插入、希爾、歸并、快排、堆排、桶排、基數(shù)的原理、平均時(shí)間復(fù)雜度、最壞時(shí)間復(fù)雜度、空間復(fù)雜度、是否穩(wěn)定。
快排的partition函數(shù)與歸并的Merge函數(shù)。
對(duì)冒泡與快排的改進(jìn)。
二分查找,與變種二分查找。
二叉樹(shù)、B+樹(shù)、AVL樹(shù)、紅黑樹(shù)、哈夫曼樹(shù)。
二叉樹(shù)的前中后續(xù)遍歷:遞歸與非遞歸寫(xiě)法,層序遍歷算法。
圖的BFS與DFS算法,最小生成樹(shù)prim算法與最短路徑Dijkstra算法。
KMP算法。
排列組合問(wèn)題。
動(dòng)態(tài)規(guī)劃、貪心算法、分治算法。(一般不會(huì)問(wèn)到)
大數(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
Activity與Fragment的生命周期。
Acitivty的四中啟動(dòng)模式與特點(diǎn)。
Activity緩存方法。
Service的生命周期,兩種啟動(dòng)方法,有什么區(qū)別。
怎么保證service不被殺死。
廣播的兩種注冊(cè)方法,有什么區(qū)別。
Intent的使用方法,可以傳遞哪些數(shù)據(jù)類(lèi)型。
ContentProvider使用方法。
Thread、AsycTask、IntentService的使用場(chǎng)景與特點(diǎn)。
五種布局: FrameLayout 、 LinearLayout 、 AbsoluteLayout 、 RelativeLayout 、TableLayout 各自特點(diǎn)及繪制效率對(duì)比。
Android的數(shù)據(jù)存儲(chǔ)形式。
Sqlite的基本操作。
Android中的MVC模式。
Merge、ViewStub的作用。
Json有什么優(yōu)劣勢(shì)。
動(dòng)畫(huà)有哪兩類(lèi),各有什么特點(diǎn)?
Handler、Loop消息隊(duì)列模型,各部分的作用。
怎樣退出終止App。
Asset目錄與res目錄的區(qū)別。
Android怎么加速啟動(dòng)Activity。
Android內(nèi)存優(yōu)化方法:ListView優(yōu)化,及時(shí)關(guān)閉資源,圖片緩存等等。
Android中弱引用與軟引用的應(yīng)用場(chǎng)景。
Bitmap的四中屬性,與每種屬性隊(duì)形的大小。
View與View Group分類(lèi)。自定義View過(guò)程:onMeasure()、onLayout()、onDraw()。
Touch事件分發(fā)機(jī)制。
Android長(zhǎng)連接,怎么處理心跳機(jī)制。
Zygote的啟動(dòng)過(guò)程。
Android IPC:Binder原理。
你用過(guò)什么框架,是否看過(guò)源碼,是否知道底層原理。
Android5.0、6.0新特性。
計(jì)劃: