Android校招:一位雙非本科拿到了頭條,小米,京東的offer

今天分享一位應屆畢業生的校招面經,你們能夠看看查漏補缺。程序員

Android校招:一位雙非本科拿到了頭條,小米,京東的offer

  • 謝謝那些曾經幫助過個人人。

不少忘記了,能回憶起來的就儘可能寫多一些。面試


小米

一面(電話)

Android:

1.內存泄漏的場景,Handler機制
2.四大組件
3.進程間通訊
4.自定義view
5.Binder的使用
6.性能優化
7.fragment的生命週期
8.事件分發機制,以及涉及到的設計模式算法

Java:

1.接口和抽象類區別
2.繼承和重寫
3.ArrayList和LinkedList區別
4.死鎖產生條件和應用場景
5.Java的修飾符的使用,static final修飾原理
6.多線程空指針解決方法
7.異常處理流程,什麼時候必需要catch數據庫

操做系統

1.進程和線程區別
2.多線程同步和異步問題
3.同步死鎖應用場景設計模式

設計模式

1.代理模式
2.單例模式以及雙重鎖原理
3.觀察者模式應用場景數組

數據結構和算法

1.無序數組創建二叉搜索樹
2.前序和中序遍歷二叉樹(我寫了遞歸和非遞歸)緩存

二面(電話)

1.四大引用區別和引用場景
2.內存泄漏的場景,Handler內存泄漏的緣由以及解決方法
3.Handler機制,主線程如何向子線程發送消息,Handler可否多進程通訊
4.多線程併發,sychronized,類鎖和對象鎖
5.線程安全類,StringBuffer和StringBuilder
6.jvm工做內存和主內存,volatile原理,jvm的靜態塊,內存屏障的實現原理
7.一個m * n的棋盤,一個蟲子從左上走到右下方,只能向右或者向下,有多少種走法,能夠用組合數學的知識解答
8.靜態廣播和動態廣播區別,service啓動的兩種方式區別
9.onMeasure的測量模式與特色
10.線程間通訊和進程間通訊
11.ArrayList刪除元素
12.寫出你認爲最優的懶漢式單例模式
13.activity意外退出時信息的儲存與恢復,onCreate正常進入時的判斷。
14.JS的交互理解嗎?平時工做用的多嗎,項目中是怎麼與Web交互的?
15.MVC -> MVP -> MVVM 這樣變化的緣由,MVP的不足,MVVM爲何代替了MVP
16.MVC的狀況下怎麼把Activity的C和V抽離
17.各個網絡框架之間的差別和優缺點,網絡框架代替進化的緣由
18.圖片緩存框架的差別和優缺點,有沒有比Glide更好的圖片加載框架?
19.項目框架裏有沒有Base類,BaseActivity和BaseFragment這種封裝致使的問題,以及解決方法
20.框架裏是怎樣實現MVC的
21.Reftofit用過沒有,註解實現的好處?
22.項目中的的界面既然是基於View的,有沒有動畫的處理?
爲何不推薦軟引用,軟引用在dvm上的垃圾回收機制和jvm上同樣嗎?
23.LRUCache的刪除條件,LRU是什麼意思
24.啓動頁緩存設計 白屏問題
25.網絡圖片怎麼加載?Glide如何肯定圖片加載完畢
26.項目框架中對多View的支持?
27.Http的request和response的協議組成
28.RecyclerView和ListView相比有哪些好處,爲何ListView被RecyclerView代替?安全

三面(視頻)

1.將知道的操做系統說一遍,引入操做系統的最終目的(計算的功能),進線程區別,虛擬地址的原理和做用,指針是物理地址仍是虛擬地址,指針的地址長度的影響因素,32位系統是4個字節,64位系統是8個字節。
2.Java的三大特性,寫一個多態的例子,注意命名的規範
3.一個很大的數組,其中有一個數出現的次數是奇數次,其餘都是偶數次。求這個數。除了異或寫另一種方法性能優化

四面(視頻)

1.Android的體系架構,深刻到framework,native層
2.單例模式的幾種實現具體的區別,工廠模式的種類以及區別
3.對C語言的理解
4.Android的觸摸事件分發流程
5.Android第三方框架的源碼實現原理網絡

Android校招:一位雙非本科拿到了頭條,小米,京東的offer

京東

京東的面試題感受都差很少,難度通常。
印象深入的以下:

一面(電話)

1.對着個人項目問了一些具體實現的問題
2.一些基礎的問題就不想再重複了,好比ArrayList和LinkedList區別
3.最後一道簡單的算法題做爲結束:求兩個字符串的最長公共子串

二面(電話)

1.也是跟一面差很少Java和Android,好比Activity的啓動模式,類加載的過程
2.設計模式
2.Activity的啓動流程,這個有點意思

今日頭條

不少真的忘記了,只記得下面這些了。

一面(視頻)

1.講一下項目,主要是深刻框架的源碼
2.Java忘記問啥了,Android問啓動模式的時候,對四種啓動模式的實際運用問得比較深,還有觸摸事件的細節問得深
3.sp的commit和apply區別
4.左鏈接和右鏈接區別
5.算法:輸出二叉樹每層的最大值

二面(牛客網視頻)

1.集合類,線程安全如何實現,寫一個算法ArrayList刪除全部值是50的。
這裏有坑:http://blog.csdn.net/lazy_p/article/details/7365324
除了遍歷還有更優的方法嗎?想不出來。換成LinkedList性能如何?
2.異常類的繼承結構,如何捕捉異常,如何全局捕捉異常並上報
3.數據的存儲方式與其的應用場景,ContentProvider的底層實現,如何保證多進程讀寫安全
4.類加載,jvm內存模型
5.自旋鎖
6.Linux的fork
7.數據庫的ACID
8.手寫反轉鏈表

三面(視頻)

1.intent是什麼來的?爲何不是動做,用來幹什麼的?
(什麼向什麼表現什麼意圖)
2.爲何設置tcp三次握手,四次揮手
3.hashmap的底層實現
4.場景題分析:手機掃網頁端的二維碼如何提起的登陸的過程,是如何實現的?
5.Service的源碼
6.Handler的實現,Looper怎麼終止。
7.項目是MVC,那根據本身負責的項目講下Model、View、Controller層
8.問了下晝夜模式、多語種、屏幕適配的問題,追問了下,若是要關閉晝夜模式功能怎麼辦?不少類的話,一個個去關嗎?
9.有沒有接觸過JNI和NDK?
10.ListView的錯位問題緣由以及如何處理?
11.如何設計一個抽獎系統,好比滿200抽20,滿500抽50

關於面試的充分準備

一些基礎知識和理論確定是要背的,要理解的背,用本身的語言總結一下背下來。

雖然 Android 沒有前幾年火熱了,已通過去了會四大組件就能找到高薪職位的時代了。這隻能說明 Android 中級如下的崗位飽和了,如今高級工程師仍是比較缺乏的,我能明顯感受到國慶後多了不少高級職位,因此努力讓本身成爲高級工程師纔是最重要的。

有些東西你不只要懂,並且要可以很好地表達出來,可以讓面試官承認你的理解,例如Handler機制,這個是面試必問之題。有些晦澀的點,或許它只活在面試當中,實際工做當中你壓根不會用到它,可是你要知道它是什麼東西。

對於程序員來講,要學習的知識內容、技術有太多太多,要想不被環境淘汰就只有不斷提高本身,歷來都是咱們去適應環境,而不是環境來適應咱們!

好了,但願對你們有所幫助。

接下來是整理的一些Android學習資料,有興趣的朋友們能夠加我wx:X1524478394 免費獲取

①Android開發核心知識點筆記

Android校招:一位雙非本科拿到了頭條,小米,京東的offer

②對標「阿里 P7」 40W+年薪企業資深架構師成長學習路線圖

Android校招:一位雙非本科拿到了頭條,小米,京東的offer

③面試精品集錦彙總

④全套體系化高級架構視頻

Android精講視頻領取學習後更加是如虎添翼!進軍BATJ大廠等(備戰)!如今都說互聯網寒冬,其實無非就是你上錯了車,且穿的少(技能),要是你上對車,自身技術能力夠強,公司換掉的代價大,怎麼可能會被裁掉,都是淘汰末端的業務Curd而已!現現在市場上初級程序員氾濫,這套教程針對Android開發工程師1-6年的人員、正處於瓶頸期,想要年後突破本身漲薪的,進階Android中高級、架構師對你更是如魚得水,趕快領取吧!

Android校招:一位雙非本科拿到了頭條,小米,京東的offer

上述【高清技術腦圖】以及【配套的架構技術PDF】能夠 加我wx:X1524478394 免費獲取

相關文章
相關標籤/搜索