2.2019Android高級面試題總結

說下你所知道的設計模式與使用場景

a.建造者模式:
將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。
使用場景比如最常見的AlertDialog,拿我們開發過程中舉例,比如Camera開發過程中,可能需要設置一個初始化的相機配置,設置攝像頭方向,閃光燈開閉,成像質量等等,這種場景下就可以使用建造者模式
裝飾者模式:動態的給一個對象添加一些額外的職責,就增加功能來說,裝飾模式比生成子類更爲靈活。裝飾者模式可以在不改變原有類結構的情況下曾強類的功能,比如Java中的BufferedInputStream 包裝FileInputStream,舉個開發中的例子,比如在我們現有網絡框架上需要增加新的功能,那麼再包裝一層即可,裝飾者模式解決了繼承存在的一些問題,比如多層繼承代碼的臃腫,使代碼邏輯更清晰
觀察者模式:
代理模式:
門面模式:
單例模式:
生產者消費者模式:

java語言的特點與是OOP思想

這個通過對比來描述,比如面向對象和麪向過程的對比,針對這兩種思想的對比,還可以舉個開發中的例子,比如播放器的實現,面向過程的實現方式就是將播放視頻的這個功能分解成多個過程,比如,加載視頻地址,獲取視頻信息,初始化解碼器,選擇合適的解碼器進行解碼,讀取解碼後的幀進行視頻格式轉換和音頻重採樣,然後讀取幀進行播放,這是一個完整的過程,這個過程中不涉及類的概念,而面向對象最大的特點就是類,封裝繼承和多態是核心,同樣的以播放器爲例,一面向對象的方式來實現,將會針對每一個功能封裝出一個對象,吧如說Muxer,獲取視頻信息,Decoder,解碼,格式轉換器,視頻播放器,音頻播放器等,每一個功能對應一個對象,由這個對象來完成對應的功能,並且遵循單一職責原則,一個對象只做它相關的事情

說下java中的線程創建方式,線程池的工作原理。
說下handle原理,爲什麼會出現內存泄漏,爲什麼繼承Handle就不會出現能存泄漏
說下Activity的啓動方式,生命週期,兩個Activity跳轉的生命週期,如果一個Activity跳轉另一個Activity再按下Home鍵在回到Activity的生命週期是什麼樣的
說下Activity的橫豎屏的切換的生命週期,用那個方法來保存數據,兩者的區別。觸發在什麼時候在那個方法裏可以獲取數據等。
是否了SurfaceView,它是什麼?他的繼承方式是什麼?他與View的區別(從源碼角度,如加載,繪製等)。
如何實現進程保活
說下冷啓動與熱啓動是什麼,區別,如何優化,使用場景等。
Android中的線程有那些(我提到HandlerThread,AsyncTask又問了他們的原理與各自特點)
給定命題,一串字符串中有通配符與佔位符,如何化簡優化(方法忘記可以簡寫)
說下產生OOM,ANR的原因,三級緩存原理,如何優化ListView。
說下你對Collection這個類的理解。
說下AIDL的使用與原理
說下你對廣播的理解
說下你對服務的理解,如何殺死一個服務。服務的生命週期(start與bind)。
是否接觸過藍牙等開發
設計一個ListView左右分頁排版的功能自定義View,說出主要的方法。
-說下binder序列化與反序列化的過程,與使用過程
是否接觸過JNI/NDK,java如何調用C語言的方法
-如何查看模擬器中的SP與SQList文件。如何可視化查看佈局嵌套層數與加載時間。
你說用的代碼管理工具什麼,爲什麼會產生代碼衝突,該如何解決
說下你對後臺的編程有那些認識,聊些前端那些方面的知識。
說下你對線程池的理解,如何創建一個線程池與使用。
說下你用過那些註解框架,他們的原理是什麼。自己實現過,或是理解他的工作過程嗎?
說下java虛擬機的理解,回收機制,JVM是如何回收對象的,有哪些方法等
一些java與Android源碼相關知識等
大學成績
大學那些專業,你哪方面學得好
單片機,嵌入式,電子線路。
畢業設計什麼,幾個人實現的,主要功能是什麼
還有些其他硬件相關知識
自己的職業規劃與發展方向

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章