一、Object有哪些公共方法?html
答:clone(),equals(),hashCode(),wait(), getClass(),finalize(),notify(),notifyAll(),toString()java
二、Object中finalize()的做用?數組
答:用於清理。finalize()方法不須要顯示地調用, 在垃圾回收(GC)時會被自動先行調用的。安全
三、Java中四種引用方式?jsp
答:http://my.oschina.net/eager/blog/726428性能
四、hashCode()的做用?ui
答:hashcode是jdk根據對象的地址或者字符串或者數字算出來的int類型的數值。spa
在 Java 應用程序執行期間,在對同一對象屢次調用 hashCode()時,必須一致地返回相同的整數,前提是將對象進行hashCode()比較時所用的信息沒有被修改。.net
詳見:http://www.cnblogs.com/dolphin0520/p/3681042.html線程
五、ArrayList、LinkedList、Vector的區別?
線程安全性:
實現方式:
擴容方式:
Stack繼承自Vector,故不分開解釋。
其餘詳見:http://blog.csdn.net/a19881029/article/details/45533733
六、String、StringBuffer與StringBuilder的區別?
詳見:http://blog.csdn.net/kingzone_2008/article/details/9220691
七、java.io 與 java.nio的區別?
主要區別以下表:
IO | NIO |
面向流 | 面向緩衝 |
阻塞IO | 非阻塞IO |
無 | 選擇器 |
詳見:http://my.oschina.net/eager/blog/729320
八、HashMap和Hashtable(注意 t 是小寫的)的區別?
九、HashMap和ConcurrentHashMap的區別?
ConcurrentHashMap詳見:http://www.cnblogs.com/dolphin0520/p/3932905.html
ConcurrentHashMap實現同步分析:http://blog.csdn.net/xuefeng0707/article/details/40834595
十、Hashtable和ConcurrentHashMap的區別?
更多關於Map的詳見:http://my.oschina.net/eager/blog/729795
十一、try{}裏有一個return語句,finally{}裏的代碼還會執行嗎?
會執行,在return以前執行。
public class Test { public static void main(String[] args) { int a = 1; System.out.println("a:"+a); System.out.println("result:"+getNum(a)); } public static int getNum(int a) { try { a = 2; System.out.println("try-a:"+a); return a; } finally { a = 3; System.out.println("finally-a:"+a); } } }
結果展現:
可能會以爲很疑惑,從輸出能夠看出是執行了finally中的語句,但爲何最終返回值是2。由於若是存在finally代碼塊,try中的return語句不會立馬返回調用者,而是記錄下返回值待finally代碼塊執行完畢以後再向調用者返回其值,因此在finally塊中調用return,則會修改返回值,可是不建議這樣作。
十二、Excption與Error包結構?
1三、OOM你遇到過哪些狀況?SOF你遇到過哪些狀況?
OOM(Out Of Memory):當JVM由於沒有足夠的內存來爲對象分配空間而且垃圾回收器也已經沒有空間可回收時,就會拋出這個Error(注:非Exception,由於這個問題已經嚴重到不足以被應用處理)。
常見內存溢出狀況:
SOF(Stack Over Flow):JAVA虛擬機棧溢出,通常是因爲程序中存在死循環或者深度遞歸調用形成的,棧大小設置過小也會出現此種溢出。能夠經過虛擬機參數-Xss來設置棧的大小。
詳見:http://www.cnblogs.com/gaojing/archive/2012/10/30/2844938.html
未完待續,該博客會每一天進行更新。