Stringstr1="abc"和Stringstr1=newString("abc");這兩個的區(qū)別是什么?
答:Stringstr1="abc"在編譯時已經(jīng)在一個常量池中生成一個拷貝,其中str1中的"abc"是字符串常量。而對于Stringstr1=newString("abc")的話,它是在運行時才創(chuàng)建。這兩句在內(nèi)在中所產(chǎn)生的對象并不是同一個對象。
GC是什么?有幾種算法實現(xiàn)?(這題到現(xiàn)在也不大明白..如果GC是垃圾回收的話.后面為什么要問有幾種算法實現(xiàn)呢?)
答:垃圾回收.可實現(xiàn)的算法有引用計數(shù),標記回收,復制回收等.
collection和collections的區(qū)別?
答:Collection是集合類的上級接口,繼承與他的接口主要有Set和List.
Collections是針對集合類的一個幫助類,他提供一系列靜態(tài)方法實現(xiàn)對各種集合的搜 索、排序、線程安全化等操作。
ArrayList和Vector的區(qū)別,HashMap和HashTable的區(qū)別?
答:Vector是同步的。這個類中的一些方法保證了Vector中的對象是線程安全的。而ArrayList則是異步的,因此ArrayList中的對象并不是線程安全的。因為同步的要求會影響執(zhí)行的效率,所以如果你不需要線程安全的集合那么使用ArrayList是一個很好的選擇,這樣可以避免由于同步帶來的不必要的性能開銷。
Hashtable和HashMap的區(qū)別:
1.Hashtable是Dictionary的子類,HashMap是Map接口的一個實現(xiàn)類;
2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情況下是非同步的。即是說,在多線程應用程序中,不用專門的操作就安全地可以使用Hashtable了;而對于HashMap,則需要額外的同步機制。但HashMap的同步問題可通過Collections的一個靜態(tài)方法得到解決:
MapCollections.synchronizedMap(Mapm)
這個方法返回一個同步的Map,這個Map封裝了底層的HashMap的所有方法,使得底層的HashMap即使是在多線程的環(huán)境中也是安全的。
3.在HashMap中,null可以作為鍵,這樣的鍵只有一個;可以有一個或多個鍵所對應的值為null。當get()方法返回null值時,即可以表示HashMap中沒有該鍵,也可以表示該鍵所對應的值為null。因此,在HashMap中不能由get()方法來判斷HashMap中是否存在某個鍵,而應該用containsKey()方法來判斷。
HashMap是Hashtable的輕量級實現(xiàn)(非線程安全的實現(xiàn)),他們都完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable。
HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。
Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Mapinterface的一個實現(xiàn)。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現(xiàn)同步,而HashMap就必須為之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差異。
overload和override的區(qū)別?
override(重寫)
1、方法名、參數(shù)、返回值相同。
2、子類方法不能縮小父類方法的訪問權(quán)限。
3、子類方法不能拋出比父類方法更多的異常(但子類方法可以不拋出異常)。
4、存在于父類和子類之間。
5、方法被定義為final不能被重寫。
overload(重載)
1、參數(shù)類型、個數(shù)、順序至少有一個不相同。
2、不能重載只有返回值不同的方法名。
3、存在于父類和子類、同類中。
以上就是天津卓眾教育java培訓機構(gòu)的小編針對“亞信java筆試題庫整理,看看你會嗎”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。
Java筆試題