1. 程式人生 > 其它 >android自學!給後輩的一點建議,附面試答案

android自學!給後輩的一點建議,附面試答案

前言

本想今年辭掉工作大幹一場,沒想到碰到疫情,家裡蹲了3個月...,還好位元組能給一次機會。前陣子位元組跳動的提前批開始了,看宣傳是說有海量HC,機會多多,本著漲漲面經的心理,然後就投遞了一下杭州那邊的部門,首先在這裡還要非常感謝內推我的小哥哥,非常熱心的幫我跟蹤進度,因為中間還出了一些小插曲(我投錯部門了。。。),還是熱心的小哥哥幫我聯絡HR,最後把我轉到想要投遞的部門了,我投的是Android開發工程師~面試專案大部分問題是圍繞我的開源專案 蘑菇部落格 展開的,還有就是我之前準備面試的一些 筆記(大佬請輕噴..)

一面

1,請程式設計實現單例模式,懶漢和飽漢寫法
2,請程式設計實現Java的生產者-消費者模型
3,HashMap的內部結構? 內部原理?
4,請簡述Android事件傳遞機制, ACTION_CANCEL事件何時觸發?
5,Android的程序間通訊,Liunx作業系統的程序間通訊。
6,JVM虛擬機器記憶體結構,以及它們的作用。
這個問題也比較基礎,JVM的記憶體結構如下圖所示。
7,簡述Android的View繪製流程,Android的wrap_content是如何計算的。
8,有一個整形陣列,包含正數和負數,然後要求把陣列內的所有負數移至正數的左邊,且保證相對位置不變,要求時間複雜度為O(n), 空間複雜度為O(1)。例如,{10, -2, 5, 8, -4, 2, -3, 7, 12, -88, -23, 35}變化後是{-2, -4,-3, -88, -23,5, 8 ,10, 2, 7, 12, 35}。

二面

1,bundle的資料結構,如何儲存,既然有了Intent.putExtra,為啥還要用bundle。
2,android的IPC通訊方式,是否使用過
3,Android的多點觸控如何傳遞 核心類
4,asynctask的原理 AsyncTask是對Thread和Handler的組合包裝。
5,android 圖片載入框架有哪些,對比下區別
6,圖片框架的一些原理知識
7,其他的一些Android的模組化開發,熱更新,元件化等知識。

三面、主流框架

  1. EventBus
    (1)EventBus是通過註解+反射來進行方法的獲取的
    (2)使用ConcurrentHashMap來儲存對映關係 呼叫實體的構建:呼叫實體中對於Object,也就是實際執行方法的物件不應該使用強引用而是應該使用弱引用,因為Map的static的,生命週期有可能長於被呼叫的物件,如果使用強引用就會出現記憶體洩漏的問題。
    (3)方法的執行 使用Dispatcher進行方法的分派,非同步則使用執行緒池來處理,同步就直接執行,而UI執行緒則使用MainLooper建立一個Handler,投遞到主執行緒中去執行。

2.Retrofit
Java中的動態代理
Retrofit中的動態代理
Retrofit作用

3.OkHttp
請求任務佇列
複用連線池

這裡我就分享一份資料,希望可以幫助到大家提升進階。

內容包含:Android學習PDF+架構視訊+面試文件+原始碼筆記高階架構技術進階腦圖、Android開發面試專題資料,高階進階架構資料 這幾塊的內容。分享給大家,非常適合近期有面試和想在技術道路上繼續精進的朋友。

如果你有需要的話,可以點選Android學習PDF+架構視訊+面試文件+原始碼筆記獲取免費領取方式

喜歡本文的話,不妨給我點個小贊、評論區留言或者轉發支援一下唄~