最近參加了一次鵝廠音樂Android工程師面試,這裏憑記憶記錄了一些一面的面試題,希望能幫到正在面試的你!
1、Java調用函數傳入實際參數時,是值傳遞還是引用傳遞?
2、單例模式的DCL方式,爲什麼需要第二次判空?
3、volatila有什麼作用?AtomiticInteger有什麼作用,底層實現原理是什麼?與synchronized關鍵字有什麼區別?cas有什麼弊端?
4、Android Log中的tag,用類名.class.getSimpleName()來獲取,會有什麼弊端?
5、反射有什麼作用?有什麼弊端?
6、廣播底層實現機制?爲什麼會比AIDL方式慢?與EventBus相比有什麼區別?
7、Handler如何保證每個線程只有一個looper?ThreadLocal有什麼作用?
8、100個0~100之間的整數,實現排序
9、RxJava介紹
10、Glide介紹
11、measuredWidth和width的區別
12、SparseArray介紹,爲什麼能提高性能
13、MVP與MVVM的區別,MVVM的實現方式
14、分享時,Android N開始對url做了什麼限制?
15、HashSet介紹
16、軟引用和弱引用的區別,什麼時候會GC?System.gc()的時候系統會立即回收系統垃圾嗎?
17、Exception和Error有什麼區別?Error能被捕捉嗎?OOM Error能被捕捉嗎?
18、Sharepreference commit()和apply()的區別。Sharepreference進程安全嗎?線程安全嗎?
19、500x500的png圖片所佔的內存大小。同一張圖片在xxdpi-drawable和drawable中誰佔用的內存更大,大多少?
20、RecyclerView與ListView的區別。
大體上這記得麼多,面試官會根據回答的內容進一步深入提問,讀者可以在該知識點上進一步拓展。