【正文】
ashMap 慢,因為它是同步的。 Hashtable繼承自Dictionary類, interface的一個實現(xiàn)。 HashMap允許將null作為一個entry的key或者value,而Hashtable不允許,還有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue(Returns true if this map maps one or more keys to the specified value)和containsKey(Returns true if this map contains a mapping for the specified key)。因為contains(Tests if some key maps into the specified value in this hashtable)方法容易讓人引起誤解。 最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現(xiàn)同步,而HashMap 就必須為之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差異。第六,Collection 和 Collections的區(qū)別。(你千萬別說一個是單數(shù)一個是復數(shù)) ,它包含有各種有關集合操作的靜態(tài)方法。 ,它是各種集合結構的父接口。第七,什么時候用assert。(API級的技術人員有可能會問這個) 斷言是一個包含布爾表達式的語句,在執(zhí)行這個語句時假定該表達式為 true。如果表達式計算為 false,那么系統(tǒng)會報告一個 Assertionerror。它用于調試目的: assert(a 0)。 // throws an Assertionerror if a = 0 斷言可以有兩種形式: assert Expression1 。 assert Expression1 : Expression2 。 Expression1 應該總是產生一個布爾值。 Expression2 可以是得出一個值的任意表達式。這個值用于生成顯示更多調試信息的 String 消息。 斷言在默認情況下是禁用的。要在編譯時啟用斷言,需要使用 source 標記: javac source 要在運行時啟用斷言,可使用 enableassertions 或者 ea 標記。 要在運行時選擇禁用斷言,可使用 da 或者 disableassertions 標記。 要系統(tǒng)類中啟用斷言,可使用 esa 或者 dsa 標記。還可以在包的基礎上啟用或者禁用斷言。 可以在預計正常情況下不會到達的任何位置上放置斷言。斷言可以用于驗證傳遞給私有方法的參數(shù)。不過,斷言不應該用于驗證傳遞給公有方法的參數(shù),因為不管是否啟用了斷言,公有方法都必須檢查其參數(shù)。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試后置條件。另外,斷言不應該以任何方式改變程序的狀態(tài)。第八,GC是什么?為什么要有GC?(基礎) GC是垃圾收集器。Java 程序員不用擔心內存管理,因為垃圾收集器會自動進行管理。要請求垃圾收集,可以調用下面的方法之一: () ().gc() gc 雖可清理,但非立刻清理第九,String s = new String(xyz)。創(chuàng)建了幾個String Object? 兩個對象,一個是xyx,一個是指向xyx的引用對象s。一個對象,一個對象引用。第十,()等于多少? ()等于多少? ()返回(long)12,()返回(long)11