安卓開發不得不會!阿里P8面試官都說太詳細了,大牛最佳總結

鹹魚翻身不斷上演

2018年5月份,北京,在所謂的互聯網寒冬裏,一個普通二本的學生,在小公司工做一年後,跳槽拿到了百度的offer,月薪從9k變爲17k,漲薪幅度接近100%。git

2018年末,上海,一個只有高中學歷的同窗,經過培訓加入了IT行業,剛開始他的月薪只有6k,一年後,他的月薪變爲了16k,漲幅接近167%。github

2019年3月,北京,一個xx科技學院畢業的的普通二本,在小公司跌跌撞撞半年後,今年年初忽然開掛,成功拿到了百度、小米、網易和頭條的offer,最終他選擇了多金的頭條,拿到了近30k的月薪。面試

2020年初,深圳,一個物理專業畢業的研究生,在工做短短兩年後,拿到了年薪50萬的offer,如今已是高級工程師了。算法

像這樣的例子還有不少,沒法一一列舉,可見,沒有名校學歷和耀眼的光環,照樣能夠進入大廠拿高薪,只是不少人沒有領悟要領而已。設計模式

打鐵還需自身硬

其實,對於學歷普通也沒有耀眼光環的人來講,進大廠就靠一條,那就是:技術實力。可是不少人在小廠待習慣了,老是用小廠的標準來衡量大廠的要求,多次面試受挫,因而得出了一個結論:面試造飛機,入職擰螺絲釘。數組

但事實上,大廠的平臺更大,用戶量也更多,天然技術要求也更高,不能徹底用擰螺絲釘來形容。就算大廠作的也是普通的事情,可是不少時候,大廠對穩定性、執行效率和崩潰率的極致追求,都是在小廠沒法體會的。緩存

咱們知道,一件看似簡單的事情,若是要作到80分,那垂手可得;若是要作到95分以上,那就很是困難了;而若是要作到99分以上,那就難如登天了。在大廠不少時候都要把事情作到95分甚至更高,這種追求極致的過程頗有技術含量,你們好理解嗎?安全

如何進入大廠,我總結下來就是:微信

  • 脫離小廠思惟,按照大廠的技術標準來要求本身
  • 整理核心技能樹
  • 潛心修煉一年

瞭解個人讀者都知道,我待過不少大廠,騰訊百度滴滴我都待過,並且個人技術級別還不低,好幾年前我就是技術專家了,我很清楚大廠的用人標準和技術要求。架構

閉關刷題

之前在網上找技術博客,不成體系的學習效果然的過低了,常常由於信息過多,還有信息不許確而耽誤時間,很容易就分心了。

後面除了跟視頻學習,就是一直在刷這套1307頁Android 面試全套真題解析。

這份資料是真的幫到了不少,內容全面,覆蓋率比較高,省去了不少時間和精力。

面試

前面面了貝殼找房和網易,都經過了,雖然最後沒有談好,可是有了一些信心。後面讓朋友幫忙內推了騰訊,三面順利拿下offer,薪資是28K,相比於上一份工做上漲了15K。

這裏主要放騰訊面經

一面

0、說說作過的項目(差很少包括了自我介紹)
說一下我表達的重點:我作了AndroidQ的適配;我在項目中使用了新的技術:LiveData、BiometricPrompt;我使用到了設計模式:工廠、簡單工廠、單例;我在不斷優化個人代碼;我關注Google開發者大會

一、問上一份工做
抓着工做中的技術點問了不少,而後後面問題的差很少都是來自這裏面。

二、EventBus和回調的對比。有沒有其餘辦法能夠解決類之間的耦合性。
說了LivaData,但其實差很少。老老實實說不知道了……
如今想了想,這個題目那份資料裏面好像也有提到過,可是……我沒記住!!!

三、ListView和RecyclerView的比較,ListView沒用了嗎?
說了實現效果,代碼、緩存方面、ViewHolder的差別,講了一下RecyclerView在多個Fragment中有相同Item時的優越性。
ListView這個問題問到我時我差點沒笑出來……我看了微信團隊對於卡包界面是否要更新爲RecyclerView的一篇文章,建議背誦全文……

四、Service和AsyncTask對比。
由於AsyncTask因爲不使用匿名內部類方式極可能出現內存泄露問題,因此本身不使用,基本都是開線程池。而後面試官問AsyncTask底層,也就說了一下handler+線程池。
如今回想,有這麼幾個點:生命週期方面;消息傳遞方面;底層實現方面。

五、線程通訊機制。
handler、信號量、互斥量、臨界區管理synchronized之類的、共享變量volatile。

六、Android進程通訊機制。
AIDL、Binder、共享文件。
前兩個沒啥說的了,老特長了。
說一下共享文件,這個我原本以爲很low,可是最近研究SharedPreference的時候,發現若是APP簽名同樣的話,可使用同一個SharedPreference,因此也就說了共享文件。我不是想表達我用共享文件做爲進程通訊方式,我只是想說我瞭解SharedPreference。

七、ArrayList和Vector對比……不會Vector,那麼ArrayList和LinkedList對比。
底層,數組,鏈表。擴容問題,我歸納了一下全部的集合類的擴容方式都是裝載因子+當前容量+須要擴容容量。
我說線程安全的List有CopyOnWriteArrayList,可是面試官沒有往下問。

八、爲何擴容不少狀況下都是擴容爲兩倍?
這個不會,可是說底層代碼不少狀況下擴容都是移位操做進行的。可能和查詢相關?

九、HashMap和HashTable對比,ConcurrentHashMap。
HashTable不是Map,HashTable是Dictionary,並且鎖的時候是鎖數組,併發的粒度很大。
ConcurrentHashMap用的是分段鎖並且有一個:判空+判相等+CAS+synchronized的一個鎖的過程,因此很強大。

十、CAS相關。

十一、知道優先級反轉嗎?
不知道……回去研究去……

十二、TCP三次握手四次揮手。
主要思路是經過SACK和全雙工來總體講解。

1三、代碼,如何判斷兩個鏈表是否相交 。
我最開始想成了找到第一個相交結點,而後說了思路,面試官說有沒有更好的。而後直接判斷最後一個結點是否相等。面試官說若是有環呢,那隻能用HashSet存一下了。

1四、反問。
問了下面試官是什麼事業羣。
說是PCG平臺,感受本身應該是被PCG撈起來了。
後面就問了一下公司的一些不疼不癢的問題。

總結
總體答得還能夠,就是覺得是2點面試,結果3點30才面上,多是我記錯時間了。狀態沒有調整到最好。

二面

0、自我介紹。
一、hashCode和equals方法。
二、HashMap,hash衝突解決,紅黑樹相關。
三、String、StringBuilder。
面試官問String的加法

String a = "a"+"b"+"c";

StringBuilder sb = new StringBuilder();
a = sb.append("a").append("b").append("c").toString();

這二者效率差異,我說沒差異啊,第一種String的加法被編譯器優化成第二種,他不信我……不過還好,最後達成共識面試官面試完本身去查。
如今覆盤以爲面試官應該想問的是這種狀況:

String a ="";
a+="a";
a+="b";
a+="c";

我仍是對的。

四、wait、notify。
問是否是隻能在有鎖的狀況下wait和notify。
[圖片上傳失敗...(image-1692c4-1602502611210)]
五、線程間通訊方式。
handler那一套。

六、快排原理,最好狀況和最壞狀況時間複雜度。
最壞狀況逆序n**2,順序狀況個人算法仍是nlogn,問了優化思路。

七、算法題,
image

用了貪心沒ac,面試官提示快排,沒想明白……

八、思考題,若是我想將一顆二叉樹存入文件,怎麼樣的格式存儲可使得讀取效率最高。
這題是個開放討論題,和麪試官一直在討論怎麼作。

【當時覺得本身涼了,沒想到順利收到了三面的通知】

三面

0、自我介紹

一、實習工做深挖

二、RePlugin原理深挖,其餘插件化框架對比

三、爲何要選擇RePlugin框架

四、你以爲本身對於Android掌握到了什麼地步

五、看過什麼源碼

六、你爲何要看源碼

七、你爲何要寫博客

八、知道哪些著名開源框架

九、什麼是進程,進程調度算法

十、什麼是線程

十一、你以爲什麼是JVM

十二、有哪些線程同步算法

1三、死鎖是什麼,舉個例子

1四、Object有哪些方法

1五、Java異常有哪些,Error和Exception區別

1六、OSI七層模型,TCP、UDP是哪一層,應用層有哪些協議

1七、若是要設計一個大量圖片下載的方法,如何肯定併發量,有哪些指標。

1八、APP間傳遞消息安全嗎?要怎麼作才能安全呢?

1九、廣播怎麼分類

20、自定義View重寫的關鍵有哪些,onLayout和onMeasure區別

2一、Android有哪些動畫,MotionLayout講一下。MotionLayout使用場景。

2二、Activity四種啓動模式,SingleTask和SingleTop的使用場景

2三、一些Framework層的問題,不太會因此記不得了。
當時收藏一位B站UP主的視頻,有須要能夠去看一下

2四、你爲何想了解Framework層知識。

2五、算法題。

2六、你對於咱們的Offer的態度

2七、閒聊

最後

總而言之,Android開發行業變化太快,做爲技術人員就要保持終生學習的態度,讓學習力成爲核心競爭力,所謂「活到老學到老」只有不斷的學習,不斷的提高本身,才能跟緊行業的步伐,才能不被時代所淘汰。

在這裏我分享一份本身收錄整理上述技術體系圖相關的幾十套騰訊、頭條、阿里、美團等公司19年的面試題,把技術點整理成了視頻和PDF(實際上比預期多花了很多精力),包含知識脈絡 + 諸多細節,因爲篇幅有限,這裏以圖片的形式給你們展現一部分。須要的朋友能夠私信我【資料】或者 點這裏 免費領取

還有高級架構技術進階腦圖、Android開發面試專題資料,高級進階架構資料 幫助你們學習提高進階,也節省你們在網上搜索資料的時間來學習,也能夠分享給身邊好友一塊兒學習。 領取地址: Android學習PDF+架構視頻+最新面試文檔+源碼筆記

相關文章
相關標籤/搜索