Android、Java面試題整理

先記下大體題目,持續補充。設計模式

1、Android

1. Activity lifecycle

onCreate() 建立活動,作一些數據初始化操做瀏覽器

onStart() 由不可見變爲可見性能優化

onResume() 能夠與用戶進行交互,位於棧頂網絡

onPause() 暫停,啓動或恢復另外一個活動時調用app

onStop() 中止,變爲不可見佈局

onDestroy() 銷燬性能

onRestart() 由中止狀態變爲運行狀態優化

2. Activity的啓動方式

①.standard模式spa

a.Activity的默認啓動模式線程

b.每啓動一個Activity就會在棧頂建立一個新的實例。例如:鬧鐘程序

缺點:當Activity已經位於棧頂時,而再次啓動Activity時還須要在建立一個新的實例,不能直接複用。

②.singleTop模式

特色:該模式會判斷要啓動的Activity實例是否位於棧頂,若是位於棧頂直接複用,不然建立新的實例。 例如:瀏覽器的書籤

缺點:若是Activity並未處於棧頂位置,則可能還會建立多個實例。

③.singleTask模式

特色:使Activity在整個應用程序中只有一個實例。每次啓動Activity時系統首先檢查棧中是否存在當前Activity實例,若是存在

則直接複用,並把當前Activity之上全部實例所有出棧。例如:瀏覽器主界面

④.singleInstance模式

特色:該模式的Activity會啓動一個新的任務棧來管理Activity實例,而且該勢力在整個系統中只有一個。不管從那個任務棧中啓動該Activity,都會是該Activity所在的任務棧轉移到前臺,從而使Activity顯示。主要做用是爲了在不一樣程序中共享一個Activity

3. Serializable和Parcelable區別

Serializable Parcelable
原理 將對象進行序列化,將一個對象轉換成可存儲或可傳輸的狀態。能夠在網絡上進行傳輸,也能夠存儲到本地。 將一個完整的對象進行分解,分解後的每一部分都是Intent所支持的數據類型。
存儲媒介 使用IO讀寫存儲在硬盤上 直接在內存中讀寫,很明顯內存的讀寫速度一般大於IO讀寫
實現 使用反射,序列化和反序列化過程須要大量 I/O 操做 本身實現封送和解封(marshalled &unmarshalled)操做不須要用反射,數據也存放在 Native 內存中,效率要快不少。
性能 使用了反射,序列化的過程較慢,並會產生大量的臨時變量,從而引發頻繁的GC。 更優

4. View 事件傳遞

Activity調用dispathTouchEvent()方法,把事件傳遞給Window;

Window再將事件交給DecorView(DecorView是View的根佈局);

DecorView再傳遞給ViewGroup;

Activity ——> Window ——> DecorView ——> ViewGroup——> View

事件分發的主要有三個關鍵方法

dispatchTouchEvent() 分發

onInterceptTouchEvent() 攔截 ,只有ViewGroup獨有此方法

onTouchEvent() 處理觸摸事件

5. HashMap原理

6. onCreateMenuOption 在Activity哪一個生命週期被調用到?

onResume
複製代碼

7. Jetpack 使用

8. Okhttp和Retrofit

攔截器使用什麼設計模式?
複製代碼

9. 內存優化

  • 第一點: 若是隻是想避免OutOfMemory異常的發生,則能夠使用軟引用。 若是對於應用的性能更在乎,想盡快回收一些佔用內存比較大的對象,則能夠使用弱引用。

  • 第二點: 能夠根據對象是否常常使用來判斷選擇軟引用仍是弱引用。 若是該對象可能會常常使用的,就儘可能用軟引用。 若是該對象不被使用的可能性更大些,就能夠用弱引用。

10. 四種引用方式使用和區別

11. 線程池怎樣複用?

12. ANR的緣由

13. 如何統計頁面楨率,app流暢?

https://www.jianshu.com/p/d126640eccb1
複製代碼

14. Android虛擬機 Dalvik和ART區別

ART虛擬機是在Android5.0纔開始使用的
複製代碼

15. 5.0之前,7.0,8.0的系統,安裝app的速度比較

16. app性能優化

https://www.jianshu.com/p/b3b09fa29f65
複製代碼

2、Java

1. Java反射機制

2. Java泛型

3、設計模式

1. 單例

參考

相關文章
相關標籤/搜索