Android面試之類集合問題總結

2021-07-22 05:48:35 字數 1856 閱讀 5717

1.hashtable和hashmap的區別

(1)hashmap是執行緒不同步的,而hashtable是執行緒同步的,這就意味著hashmap在效率上要比hashtable的執行效率要高。但是如果你需要同步,那麼選擇hashtable是最好的。當然你也可以給hashmap提供同步。

(2)hashmap中允許存乙個key為空的鍵值對,並且允許存多個value為空的鍵值對。

(3)hashtable中的contains方法實際呼叫了containsvalue方法。而在hashmap中去掉了這個方法。

2.==,equals,hashcode的區別

==是判定兩個物件的引用是否相等的

equals 因為是object中的方法,預設也是判斷兩個物件的引用位址是否一致,但是我們自己在定義乙個類的時候可以重寫這個方法,實際上在string integer,double這些類中均重寫了equals方法。

hashcode方法則是快速的判斷乙個物件是否在某個小的記憶體中,好處就是在比較兩個object是否相等的時候,可以先判斷hashcode的值是否相等,如果相等則進一步再呼叫equals方法判斷。如果hashcode都不相等,那麼這兩個值肯定是不相等的(之所以hashcode相等,但是equals卻不一定相等是因為如果objecta a objectb b 但是這兩個類都有同一name欄位的話,而hashcode是根據name欄位得出,那麼在equals比較的時候,就會因為型別不一致)

3.為什麼在重寫equals的時候需要重寫hashcode方法

假設 定義了乙個類 student,類中有乙個欄位name,我們 執行 hashsetset = new hashset(); set.put(new student("xiaoli")); set.put(new student("xiaoli"));

當我們不重寫hashcode的時候,如果我們向諸如hashset之類的集合put物件的時候,首先會呼叫hashcode方法,如果你沒有重寫,那麼這兩個物件就會存放進去,這顯然是不符合hashset不能存放重複資料的原則,因此如果我們重寫了hashcode方法,那麼這兩個物件得到的hashcode值是相同的,即不能放入set集合中。

另外因為hashcode可以迅速的判斷物件所在的小記憶體,這樣在比較物件的時候,或者是要插入物件的時候效率就會大大的提高。

4.下面哪一項不屬於android的動畫型別?  (d)

tween

alpha

frame

animation

b屬於tween動畫的一種。

tween(漸變動畫)包含:alpha和scale

frame(畫面轉換動畫)包含:translate和rotate 5.

android系統對下列哪些物件提供了資源池

正確答案:ac

message

thread

asynctask

looper

a.message提供了訊息池,有靜態方法obtain從訊息池中取物件;

b.thread預設不提供資源池,除非使用執行緒池threadpool管理;

c.asyntask是執行緒池改造的,池裡 預設提供(核數+1)個執行緒進行併發操作,最大支援(核數  * 2 + 1)個執行緒,超過後會丟棄其他任務;

d.looper,每個looper建立時建立乙個訊息佇列和執行緒物件,也不是資源池;

因此答案為ac

下面哪一項不屬於android的動畫型別?

java面試基礎 集合相關問題

1 hashmap linkedhashmap concurrenthashmap arraylist linkedlist的底層實現。hashmap 執行緒非安全 實現了map介面,雜湊表儲存鍵值對,entry物件hash陣列預設大小16,2的指數次擴充 位運算增速,查詢效率高 允許鍵值對為nul...

Android 許可權集合

允許讀寫訪問 properties 表在checkin資料庫中,改值可以修改上傳 允許乙個程式訪問cellid或wifi熱點來獲取粗略的位置 允許乙個程式訪問精良位置 如gps 允許應用程式訪問額外的位置提供命令 允許程式建立模擬位置提供用於測試 允許程式訪問有關gsm網路資訊 允許程式使用su c...

Android錯誤集合

org.gradle.process.internal.execexception a problem occurred starting process command users apang library android sdk ndk bundle toolchains mipsel lin...