J2SE基礎java
八種基本數據類型的大小,以及他們的封裝類。(有的也說是9中基本數據類型,包括了void)算法
基本類型編程 |
大小(字節)設計模式 |
默認值數組 |
封裝類網絡 |
byte數據結構 |
1多線程 |
(byte)0併發 |
Bytesocket |
short |
2 |
(short)0 |
Short |
int |
4 |
0 |
Integer |
long |
8 |
0L |
Long |
float |
4 |
0.0f |
Float |
double |
8 |
0.0d |
Double |
boolean |
- |
false |
Boolean |
char |
2 |
\u0000(null) |
Character |
Switch可否用string作參數?
equals與==的區別。
Object有哪些公用方法?
Java的四種引用,強弱軟虛,用到的場景。
Hashcode的做用。
ArrayList、LinkedList、Vector的區別。
String、StringBuffer與StringBuilder的區別。
Map、Set、List、Queue、Stack的特色與用法。
HashMap和HashTable的區別。
HashMap和ConcurrentHashMap的區別,HashMap的底層源碼。
TreeMap、HashMap、LindedHashMap的區別。
Collection包結構,與Collections的區別。
try catch finally,try裏有return,finally還執行麼?
Excption與Error包結構。OOM你遇到過哪些狀況,SOF你遇到過哪些狀況。
Java面向對象的三個特徵與含義。
Override和Overload的含義去區別。
Interface與abstract類的區別。
Static class 與non static class的區別。
java多態的實現原理。
實現多線程的兩種方法:Thread與Runable。
線程同步的方法:sychronized、lock、reentrantLock等。
鎖的等級:方法鎖、對象鎖、類鎖。
寫出生產者消費者模式。
ThreadLocal的設計理念與做用。
ThreadPool用法與優點。
Concurrent包裏的其餘東西:ArrayBlockingQueue、CountDownLatch等等。
wait()和sleep()的區別。
foreach與正常for循環效率對比。
Java IO與NIO。
反射的做用於原理。
泛型經常使用特色,List<String>可否轉爲List<Object>。
解析XML的幾種方式的原理與特色:DOM、SAX、PULL。
Java與C++對比。
Java1.7與1.8新特性。
設計模式:單例、工廠、適配器、責任鏈、觀察者等等。
JNI的使用。
Java裏有不少很雜的東西,有時候須要你閱讀源碼,大多數可能書裏面講的不是太清楚,須要你在網上尋找答案。
推薦書籍:《java核心技術卷I》《Thinking in java》《java併發編程》《effictive java》《大話設計模式》
JVM
內存模型以及分區,須要詳細到每一個區放什麼。
堆裏面的分區:Eden,survival from to,老年代,各自的特色。
對象建立方法,對象的內存分配,對象的訪問定位。
GC的兩種斷定方法:引用計數與引用鏈。
GC的三種收集方法:標記清除、標記整理、複製算法的原理與特色,分別用在什麼地方,若是讓你優化收集方法,有什麼思路?
GC收集器有哪些?CMS收集器與G1收集器的特色。
Minor GC與Full GC分別在何時發生?
幾種經常使用的內存調試工具:jmap、jstack、jconsole。
類加載的五個過程:加載、驗證、準備、解析、初始化。
雙親委派模型:Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。
分派:靜態分派與動態分派。
JVM過去過來就問了這麼些問題,沒怎麼變,內存模型和GC算法這塊問得比較多
推薦書籍:《深刻理解java虛擬機》
操做系統
進程和線程的區別。
死鎖的必要條件,怎麼處理死鎖。
Window內存管理方式:段存儲,頁存儲,段頁存儲。
進程的幾種狀態。
IPC幾種通訊方式。
什麼是虛擬內存。
虛擬地址、邏輯地址、線性地址、物理地址的區別。
推薦書籍:《深刻理解現代操做系統》
TCP/IP
OSI與TCP/IP各層的結構與功能,都有哪些協議。
TCP與UDP的區別。
TCP報文結構。
TCP的三次握手與四次揮手過程,各個狀態名稱與含義,TIMEWAIT的做用。
TCP擁塞控制。
TCP滑動窗口與回退N針協議。
Http的報文結構。
Http的狀態碼含義。
Http request的幾種類型。
Http1.1和Http1.0的區別
Http怎麼處理長鏈接。
Cookie與Session的做用於原理。
電腦上訪問一個網頁,整個過程是怎麼樣的:DNS、HTTP、TCP、OSPF、IP、ARP。
Ping的整個過程。ICMP報文是什麼。
C/S模式下使用socket通訊,幾個關鍵函數。
IP地址分類。
路由器與交換機區別。
網絡其實大致分爲兩塊,一個TCP協議,一個HTTP協議,只要把這兩塊以及相關協議搞清楚,通常問題不大。
推薦書籍:《TCP/IP協議族》
數據結構與算法
鏈表與數組。
隊列和棧,出棧與入棧。
鏈表的刪除、插入、反向。
字符串操做。
Hash表的hash函數,衝突解決方法有哪些。
各類排序:冒泡、選擇、插入、希爾、歸併、快排、堆排、桶排、基數的原理、平均時間複雜度、最壞時間複雜度、空間複雜度、是否穩定。
快排的partition函數與歸併的Merge函數。
對冒泡與快排的改進。
二分查找,與變種二分查找。
二叉樹、B+樹、AVL樹、紅黑樹、哈夫曼樹。
二叉樹的前中後續遍歷:遞歸與非遞歸寫法,層序遍歷算法。
圖的BFS與DFS算法,最小生成樹prim算法與最短路徑Dijkstra算法。
KMP算法。
排列組合問題。
動態規劃、貪心算法、分治算法。(通常不會問到)
大數據處理:相似10億條數據找出最大的1000個數.........等等