2020年Android高級面試題總結(附答案解析)


前言

回顧一下自己這段時間的經歷,三月份的時候,疫情原因公司通知了裁員,我匆匆忙忙地出去面了幾家,但最終都沒有拿到offer,我感覺今年的寒冬有點冷。到五月份,公司開始第二波裁員,我決定主動拿賠償走人。后續的面試過程我做了一些准備,基本都能走到hr面,后面我也順利地拿到了offer,我給大家分享下我的求職體會,希望能給大家一些參考。

一般Android面試分為兩部分:Java部分和Android部分,下面說一下自己面試過程遇到的一些具體題目和一些相關知識點。

一 Java相關

1.重載函數的簽名(區別是否是重載函數)

答:方法名+參數類型+參數順序(返回值不是)

2.finalize的工作原理

答:一旦垃圾收集器准備好釋放對象占用的存儲空間,它首先調用finalize(),而且只有在下一次垃圾收集過程中,才會真正回收對象的內存.所以如果使用finalize(),就可以在垃圾收集期間進行一些重要的清除或清掃工作。此外系統進行垃圾回收時並不保證一定會調用它,所以可以說它和對象被回收沒有必然關系。

3.一個對象的創建過程

答:例如有一個Dog類:

1.即使沒有static,構造器其實也是靜態方法,所以當首次創建Dog時或者Dog的靜態域或者靜態方法被訪問的時候,Dog的class對象會被加載。

2.在加載Dog的class的時候可能會發現其有基類,此時先暫停Dog的加載,轉而去加載其基類。所以基類的static域比子類先初始化。

3.載入class文件之后,會創建一個該該類的class對象,所有關於靜態初始化的動作會被執行,所以靜態初始化只在Class對象首次加載時進行一次。

4.當使用new的時候,首先為Dog對象在堆上分配足夠內存空間。這塊內存控件會被清零,所有實例都被初始化成了默認值,包括基類。

5.執行所有字段定義處的初始化,從基類開始。

6.執行構造器。(在第一行會執行基類的構造器)

4.對象的銷毀是按照創建的逆序來進行的。

5.final的方法和類都不允許覆蓋和繼承。private默認實現了final。

6.簡述內部類的特點

7.形式參數可被視為local variable,也就是說形式參數相當於在方法中定義了一個局部變量a,當傳入c時,只是將c指向的對象給a

8.finally 語句塊是在 try 或者 catch 中的 return 語句之前執行的

9.簡述jvm中默認的classLoader與功能

10.switch語句后的控制表達式只能是short、char、int、long整數類型和枚舉類型,不能是float,double和boolean類型。String類型是java7開始支持

11.重寫的特性

12.!=和==,當用於基本類型時候,是比較值是否相同;當用於引用類型的時候,是比較對象是否相同,比較內存地址

13.null可以被強制類型轉換成任意類型的對象,於是通過它來執行靜態方法

14.如何終止一個線程

15.靜態屬性和靜態方法是否可以被繼承

16.列出各種List,Set,Map,Queue並說出他們的同與不同。

17.列出幾種線程池

18.解釋一下java內存模型

19.解釋一下java代碼的原子性

20.解釋一下volatile字段

21.解釋一下synchronized字段

22.Lock的使用

23.wait()和sleep()區別

24.死鎖產生的條件

...

篇幅原因,參考答案均整理到下面這份PDF文檔里,需要的朋友點擊我的GitHub,前往免費領取

2020Android 高級面試題總結(附答案解析)

二 Android相關

Android部分我就不分幾大塊了。直接列舉,但是列舉到的每一項都是面試經常會問到並且會延伸問的,所以需要深入的去研究。

1.Android事件分發機制,請詳細說下整個流程

2.Android view繪制機制和加載過程,請詳細說下整個流程

3.Activty的加載過程 請詳細介紹下

4.Activity的啟動模式:

5.Activity緩存方法:

6.Service的生命周期,兩種啟動方法,有什么區別:

7.怎么保證service不被殺死8.廣播的兩種注冊方法,有什么區別。

9.Intent可以傳遞哪些數據類型10.Json有什么優劣勢

11.動畫有哪幾類,各有什么特點:

12.Handler、Loop消息隊列模型,各部分的作用。

13. 怎樣退出終止App:自己設置一個Activity的棧,然后一個個finish()。

14. Android IPC:Binder原理

15.android的優化

16.一個singleton如何實現線程的同步問題

17.android重要術語解釋

18.理解Window和WindowManager

19.Bitmap的處理:

20.綜合技術:

21.如何實現一個網絡框架(參考Volley)

22.ClassLoader的基礎知識:

23.插件化框架描述:dynamicLoadApk為例子

24.熱修復:Andfix為例子

..

篇幅原因,參考答案均整理到下面這份PDF文檔里,需要的朋友關注+轉發+私信**學習**,前往免費領取!

2020Android 高級面試題總結(附答案解析)

Android相關

三 Android相關總結

上面的列的相關內容,看似很短一句話,但是每一項都需要你深入的去研究,要了解原理,最好去看一下源碼實現。當然還有一些是我沒寫到的,可能是我寫的時候沒有想起來,並不代表他們不重要,你也需要重視,再來一波推薦:《Android開發藝術探索》強烈推薦,建議細細的讀,如果粗心大意建議讀兩到三遍,針對性的讀。《Android進階之光》《高級Android開發強化實戰》《Android組件化架構》《Android熱修復技術原理》《Android插件化開發指南》

五 面試心得

1.准備要充分,知識面要盡量的廣,同時深度也要夠。2.面試安排上,如果不着急,盡量給自己留多時間,兩天一家,及時做總結和補充。3.心態要放平,當做一次技術交流,面試要看一部分的運氣,也要看一些眼緣,有的面試官一張嘴你就能感覺到你這次面試完了。想去的公司沒有面試好,不要氣餒,繼續加油准備。4.簡歷投遞方面,拉勾上投了很多經常不匹配,可能是我學歷問題(自考本),有一些打擊自信心,如果有同樣感受的,不妨換BOSS或者其他平台。避免打擊自信心。5.寫簡歷一定要體現自己的優勢,最好能體現類似於,用到了什么技術,解決了什么問題。簡歷上寫到的一定要胸有成竹。6.類似於你的優勢是什么,你覺得你項目中做的比較好的地方有哪些,你能給公司帶來什么,這種問題心里要先想一些,免得臨場發揮容易緊張說不好。7.我所經歷的面試,一般技術面最少是兩輪。如果一輪后讓你走了,而你還自我感覺良好,那我覺得你有必要回顧一下面試內容,並一條一條找找該問題的相關內容,大部分問題就在於你沒有答到點子上,可能是深度不夠,也可能是擴展不夠。繼續加油。

2020Android 高級面試題總結(附答案解析)

簡歷模板

六 閑聊

現在外面面試問的的確比較多,要求也挺高的,行情不好,薪資也不好要,所以心態一定要放好,找好自己的定位,心態一定要好。

面試之后要盡量做到總結,從我最開始沒什么准備就出去面試,被打擊一通之后,總結了七八家面試題,會發現面試問到的都是那些知識點,可能角度不一樣,但是你只要深度夠,他怎么問,你基於原理來回答,基本上都沒差,從簽了賠償協議以后出來面試,連續四家公司都走到了HR面,可以說面試的感覺上來了。前面的總結積累終究沒有白費。

在寫這篇文章之前,我專門看了下我之前收藏的別的公號上發的面試題,很全,我都有點不想寫這篇文章了。但是想了下我這幾個月聽到要裁員開始面試,到第一批沒被裁,第二批裁員遲遲不來。到第二批來的時候主動申請被裁。中間面試被打擊,失落,看到新聞那那都在裁員,到現在面試整體感覺還不錯。還是想分享一下自己的心里路程,想告訴大家,裁員別慌,做自己該做的,其他自己決定不了的,先放一放,心里列一個123,一條一條來。

可以看到我在上面推薦了很多書籍,而且JAVA部分時分塊來了。是因為當我看到很多面試題,針對題來的時候,題會很多,而且有時候你會覺得你的題都會了,但是面試的時候還是面不好,說明你的知識並不扎實。或者你知識會了這個題,並沒有融會貫通,所以在JAVA部分我分大塊來描述,而且針對每一塊,我都有推薦一本相關的書,你可能不需要都看,可以針對性的看。而Android部分是詳細的知識點,這些知識點我希望的是,能夠深入研究。而推薦的書籍,書中的部分都有一些相關的知識點,大家也可以選擇性的看,當然論壇,博客都是知識的來源,大家做好知識點深度和廣度的基類就行了。

最后,雖然裁員的很多,都在說Android要沒落,但是,不要慌,做自己的計划,學自己的習,競爭無處不在,每個行業都是如此。

分享讀者

作者2013年java轉到Android開發,在小廠待過,也去過華為,OPPO等大廠待過,18年四月份進了阿里一直到現在。

被人面試過,也面試過很多人。深知大多數初中級Android工程師,想要提升技能,往往是自己摸索成長,不成體系的學習效果低效漫長,而且極易碰到天花板技術停滯不前!

我們整理了一份阿里P7級別的Android架構師全套學習資料,特別適合有3-5年以上經驗的小伙伴深入學習提升。

主要包括阿里,以及字節跳動,騰訊,華為,小米,等一線互聯網公司主流架構技術。如果你有需要,盡管拿走好了。

2020Android 高級面試題總結(附答案解析)

 

點擊我的GitHub,前往免費領取!

如果你覺得自己學習效率低,缺乏正確的指導,可以加入資源豐富,學習氛圍濃厚的技術圈一起學習交流吧!

群內有許多來自一線的技術大牛,也有在小廠或外包公司奮斗的碼農,我們致力打造一個平等,高質量的Android交流圈子,不一定能短期就讓每個人的技術突飛猛進,但從長遠來說,眼光,格局,長遠發展的方向才是最重要的。

35歲中年危機大多是因為被短期的利益牽着走,過早壓榨掉了價值,如果能一開始就樹立一個正確的長遠的職業規划。35歲后的你只會比周圍的人更值錢。

【Android進階學習視頻】、【BTAJ大廠安卓面試真題】、【Android核心知識筆記PDF】,加Q群672020606免費獲取!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM