資料內(nèi)容:
1-8)ArrayList、Vector、LinkedList 的區(qū)別及其優(yōu)缺點?HashMap、HashTable 的區(qū)別及優(yōu)缺點?
ArrayList 和 Vector 是采?數(shù)組?式存儲數(shù)據(jù)的,是根據(jù)索引來訪問元素的,都可以
根據(jù)需要?動擴展內(nèi)部數(shù)據(jù)長度,以便增加和插?元素,都允許直接序號索引元素,但
是插?數(shù)據(jù)要涉及到數(shù)組元素移動等內(nèi)存操作,所以索引數(shù)據(jù)快插?數(shù)據(jù)慢,他們最?
的區(qū)別就是 synchronized 同步的使?。
LinkedList 使?雙向鏈表實現(xiàn)存儲,按序號索引數(shù)據(jù)需要進(jìn)?向前或向后遍歷,但
是插?數(shù)據(jù)時只需要記錄本項的前后項即可,所以插?數(shù)度較快!
如果只是查找特定位置的元素或只在集合的末端增加、移除元素,那么使? Vector
或 ArrayList 都可以。如果是對其它指定位置的插?、刪除操作,最好選擇 LinkedList
HashMap、HashTable 的區(qū)別及其優(yōu)缺點:
HashTable 中的?法是同步的 HashMap 的?法在缺省情況下是?同步的 因此在多線程環(huán)境下需要做額外的同步機制。
HashTable 不允許有 null 值 key 和 value 都不允許,? HashMap 允許有 null 值 key和 value 都允許 因此 HashMap 使
? containKey()來判斷是否存在某個鍵。
HashTable 使? Enumeration ,? HashMap 使? iterator。
Hashtable 是 Dictionary 的?類,HashMap 是 Map 接?的?個實現(xiàn)類。
1-9)使? StringBuffer ?不是 String
當(dāng)需要對字符串進(jìn)?操作時,使? StringBuffer ?不是 String,String 是 read-only 的,如果對它進(jìn)?修改,會產(chǎn)?臨時對象,
? StringBuffer 是可修改的,不會產(chǎn)?臨時對象。
1-10)集合的擴充
ArrayList list = new ArrayList(90000); list擴充多少次??
public ArrayList() {
this(10);
}
默認(rèn)的擴充是10由此計算
1-11)java的拆包與封包的問題
System.out.println("5" + 2);
521-12)Java中Class.forName和ClassLoader.loadClass的區(qū)別
Class.forName("xx.xx")等同于Class.forName("xx.xx",true,CALLClass.class.getClassLoader()),第?個參數(shù)(bool)表?裝載類的時候是否
初始化該類,即調(diào)?類的靜態(tài)塊的語句及初始化靜態(tài)成員變量。
ClassLoader loader = Thread.currentThread.getContextClassLoader(); //也可以?(ClassLoader.getSystemClassLoader())
Class cls = loader.loadClass("xx.xx"); //這句話沒有執(zhí)?初始化
forName可以控制是否初始化類,?loadClass加載時是沒有初始化的。