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


前言

回顧一下自己這段時間的經歷,三月份的時候,疫情原因公司通知了裁員,我匆匆忙忙地出去面了幾家,但最終都沒有拿到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文檔里,點擊下載:https://shimo.im/docs/gTtkXVggxQrwjQ9K

 

 

二 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里,需要的朋友,點擊下載:https://shimo.im/docs/gTtkXVggxQrwjQ9K
Android相關

三 Android相關總結

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

五 面試心得

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

六 閑聊

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

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

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

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

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

分享讀者

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

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

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

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

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

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

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


免責聲明!

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



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