2020年開春最新面試!今日頭條 Android 面試題及答案 (已拿到 offer)
面試時間:2019.12.29 1~3面、2020.1.03 4~6面、2020.1.06 HR面
面試部門 + 崗位:商業化 - 高階 Android 開發工程師
面試感想:整體面得比較累,基礎面、交叉面、Boss面,前前後後對接了 6 個面試官 (離當初給我說的 3面+HR面 貌似差得有點遠¬_¬) 。演算法到 Boss 面都還在寫,不過慶幸的是面試官沒有為難我 (老實交代了演算法沒怎麼準備,哎...),演算法都不太難。整體專案比基礎問得多。
面試建議:演算法、基礎是敲門磚,專案是試金石,良好的面試形象是加分項。
簡歷上列舉的專案多想想,為什麼做這個專案?做這個專案的目標是什麼?我的方案是什麼?相對其他方案我的方案優勢是什麼?專案的收益是什麼?專案的架構圖是否能畫出來?專案中使用的主要框架原理是否前前後後都清楚?(我大概就是專案拯救了自己,基礎準備有點倉促T^T)。
如果是現場或影片面試,良好的面試形象還是比較有必要的。在部門 TL 面的時候,就提到我相對很多其他面試者比較好的一點就是,整個人的形象狀態比較好,沒有讓人覺得很疲憊。
【 1面 - 基礎面】
- 你們 Android 開發的時候,對於 UI 稿的 px 是如何適配的?
Android 目前穩定高效的UI適配。方案、 今日頭條螢幕適配。方案 AndroidAutoSize、 今日頭條-透過反射修正系統的 density 值
- dpi:螢幕畫素密度,指的是在 系統軟體上指定的單位尺寸的畫素數量,它往往是寫在系統出廠配置檔案的一個固定值;
- ppi:也是螢幕畫素密度,但這個 是物理上的概念,它是客觀存在的不會改變。dpi是軟體參考了物理畫素密度後,人為指定的一個值,這樣保證了 某一個區間內的物理畫素密度在軟體上都使用同一個值;
- dp加上自適應佈局和weight比例佈局能解決 90%的適配問題。因為並不是所有的1080P的手機dpi都是480,比如Google 的Pixel2(1920*1080)的dpi是420;
- 寬高限定符適配:窮舉市面上所有的Android手機的寬高畫素值,設定一個基準的解析度,其他解析度都根據這個基準解析度來計算,在不同的尺寸資料夾內部,根據該尺寸編寫對應的dimens檔案。 但其有一個致命的缺陷,那就是需要精準命中才能適配,App包體積也會變大
-
兩個值相等的 Integer 物件,== 比較,判斷是否相等?
-
Activity A 跳轉Activity B,Activity B再按back鍵回退,兩個過程各自的生命週期
-
子執行緒是否可以 context.startActivity() (如ApplicationContext), 會不會有什麼問題?
寫 demo 試了下是可以的。但會有什麼問題還沒弄清楚...
- Handler機制整體流程;Looper.loop()為什麼不會阻塞主執行緒;IdHandler(閒時機制);postDelay()的具體實現;post()與sendMessage()區別;使用Handler需要注意什麼問題,怎麼解決的?
問題很細,能準備多詳細就準備多詳細。人家自己封裝了一套 Handler 來避免記憶體洩漏問題
- Native、H5、RN頁面混合跳轉時,頁面清棧的橋如何實現的?
自己做的一個專案,原理講清楚就行,講不清就畫圖
-
怎麼計算一個View在螢幕可見部分的百分比?
-
ClassLoader 的雙親委派機制 -
-
簡單介紹下 Https 的原理
-
什麼情況會導致記憶體洩漏,如何修復?
-
下載一張很大的圖,如何保證不 oom? -
-
有沒有做過UI方面的最佳化,做過哪些?
- 除錯GPU過度繪製,將Overdraw降低到合理範圍內;
- 減少巢狀層次及控制元件個數,保持view的樹形結構儘量扁平(使用Hierarchy Viewer可以方便的檢視),同時移除所有不需要渲染的view;
- 使用GPU配置渲染工具,定位出問題發生在具體哪個步驟,使用TraceView精準定位程式碼;
- 使用標籤,merge減少巢狀層次、viewStub延遲初始化、include佈局重用 (與merge配合使用)
-
WebView 與 JS 互動方式,shouldOverrideUrlLoading、onJsPrompt使用有啥區別 -
-
Flutter、Kotlin接觸使用過沒有
-
其他專案相關問題
-
演算法 - 二叉樹輸出第 k 層節點元素
【 2面 - 專案專項】
-
Native、H5、RN頁面混合跳轉時,頁面清棧的橋實現
-
頁面混編框架的設計與難點
-
RN 通用容器的設計
-
使用者行為監控方案設計
-
JS 錯誤治理方案
-
RN 頁面對使用者行為的監控與JS錯誤治理,在問題發現有什麼收穫、最佳化點
-
美團 RN 相對於原生 RN 的有什麼優勢
【 3面 - 基礎加深】
-
你們公司 Picasso 有使用過沒,介紹下
-
Picasso 單引擎,在多 Bundle 的情況下怎麼保證資料隔離的?
-
美團 RN 與 Picasso 的區別
4.省略若干專案相關問題...
-
RN 的頁面追蹤埋點如何實現的
-
美團首頁是否是 RN 頁面,MTFlexBox 原理
-
synchronized 修飾 static 方法、普通方法、類、方法塊區別
-
synchronized 底層實現原理
-
volatile 的作用和原理
-
一個 int 變數用 volatile 修飾,多執行緒去操作 i++,是否執行緒安全?如何保證 i++ 執行緒安全?AtomicInteger 的底層實現原理?
使用 AtomicInteger 可以使 i++ 執行緒安全
-
說下對執行緒池的理解,以及建立執行緒池的幾個關鍵引數
-
Handler 機制又問了一遍...
-
介紹下 Binder 機制,與記憶體共享機制有什麼區別?
-
Java 集合,介紹下ArrayList 和 HashMap 的使用場景,底層實現原理
-
ArrayList 與 LinkedList 的區別
-
演算法 - 兩個有序的連結串列的合併
-
演算法 - 輸入一個字串(不含 和.)、正則(字母、和.任意組合),判斷字串是否合法
-
簡單介紹下,專案中遇到的一些技術難點
【 4面 - 交叉面】
- 下面的程式碼, str 值最終為多少?換成 Integer 值又為多少,是否會被改變?
- 考點:Java 值傳遞 (第 2 題相同)。編寫程式碼測試,在 changeValue() 方法中修改入參,並 不會改變之前的值;
- 原理 : Java 程式設計語言總是採用按值呼叫,方法得到的是所有引數值的一個複製,即方法 不能修改傳遞給它的任何引數變數的內容。基本型別引數傳遞的是引數副本,物件型別引數傳遞的是 物件地址的副本;
- 題解:在 changeValue() 中,對於物件型別引數,直接修改的是 物件地址副本的值,所以之前變數的地址並未被修改!若修改的是物件例項裡面的某個值,之前變數則會被修改
public void test() { String str = "123"; changeValue(str); System.out.println("str值為: " + str); // str未被改變,str = "123" } public changeValue(String str) { str = "abc"; }
- 下面的程式碼,再次使用物件 student 是否需要判空?
Java 中方法引數的使用情況總結:
- 一個方法不能修改一個基本資料型別的引數(即數值型或布林型);
- 一個方法可以改變一個物件引數的狀態;
- 一個方法不能讓物件引數引用一個新的物件
public void test() { Student student = new Student("Bobo", 15); changeValue1(student); // student值未改變,不為null! 輸出結果 student值為 name:Bobo、age:15 // changeValue2(student); // student值被改變,輸出結果 student值為 name:Lily、age:20 System.out.println("student值為 name: " + student.name + "、age:" + student.age); } public changeValue1(Student student) { student = null; } public static void changeValue2(Student student) { student.name = "Lily"; student.age = 20; }
-
Java 的幾種引用型別,弱引用的使用場景?
-
執行緒池分類,解釋下幾個核心引數?
-
APK 的打包過程是什麼?
- aapt 工具打包資原始檔,生成 R.java 檔案
- aidl 工具處理 AIDL 檔案,生成對應的 .java 檔案
- javac 工具編譯 Java 檔案,生成對應的 .class 檔案
- 把 .class 檔案轉化成 Davik VM 支援的 .dex 檔案
- apkbuilder 工具打包生成未簽名的 .apk 檔案
- jarsigner 對未簽名 .apk 檔案進行簽名
- zipalign 工具對簽名後的 .apk 檔案進行對齊處理
- APK 為什麼要簽名?是否瞭解過具體的簽名機制?
- 為什麼要分 dex ?SDK 21 不分 dex,直接全部載入會不會有什麼問題?
求路過大神們的正解...
-
常見的設計模式有哪些?你提供的 JS 錯誤治理方案,用了哪些設計模式?
-
演算法 - 二叉樹層序遍歷,奇數層逆序遍歷節點,偶數層正序遍歷
-
未來 3~5 年的規劃是什麼?
-
你覺得你的優點是什麼?缺點是什麼?
-
現在的職級,近期的績效如何
【 5面 - 部門 TL】
-
商業化部門相關的業務介紹 (核心大概是商業化部門壁壘高,培養一個人成本高,比做其他業務更有含金量,可以積累很多業務策略知識),然後讓問他問題
-
未來幾年的規劃?生活上有什麼規劃?
-
你覺得你的優點是什麼?缺點是什麼?
-
現在的職級,近期的績效如何
-
為什麼給你這麼好的績效?
-
有沒有看其他機會?阿里面試的情況
【 6面 - 大 Boss】
-
演算法 - 陣列插入,考慮擴容
-
在專案的遇到的比較有挑戰的事是什麼?
-
你在美團負責的業務有哪些?
-
未來幾年的規劃是什麼?
-
你覺得你的優點是什麼?缺點是什麼?
-
現在的職級,近期的績效如何
【HR 面】
-
本科和研究生專業都是偏硬體的,是否有相關的軟體經歷?
-
研究生是保研的還是自己考的?
-
去美團之前有沒有 Android 開發經歷?
-
當時為什麼要選擇去美團?為什麼要選擇來北京?
-
為什麼要換工作?期望以後的工作是怎樣的?
金句:現在自己的技術成長有點碰到瓶頸,加上一直對您公司欽慕有加
-
現在的職級,近期的績效如何?
-
這麼好的績效,為什麼不選擇美團內換部門看看機會?
-
幾次晉升中,業績亮點是什麼?
-
家是哪裡的,有回家那邊發展的打算沒有?
-
有打算再去看看快手之類的工作機會沒有?
-
問一些阿里現在的面試進展和情況
-
期望的薪資
總結:
面試是一個不斷學習、不斷自我提升的過程,有機會還是出去面面,至少能想到查漏補缺效果,而且有些知識點,可能你自以為知道,但讓你說,並不一定能說得很好。
有些東西有壓力才有動力,而學到的知識點,都是錢(因為技術人員大部分情況是根據你的能力來定級、來發薪水的),技多不壓身。
附上我的面試各大專題整理: 面試指南
滿滿的都是乾貨,希望對大家有幫助!
關注+點贊,vx:xx13414521贈送。
大家如果有啥好建議,面試的好處,也可以評論回覆哈,我補充,謝謝〜〜〜
推薦閱讀: 金三銀四,收下這份最全安卓開發面試指南!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952849/viewspace-2675734/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 今日頭條Android面試Android面試
- 今日頭條實習面試題解析面試題
- 2018年最新Java面試題及答案Java面試題
- 2019 Python最新面試題及答案16道題Python面試題
- 2020最新位元組跳動面試經驗分享,已拿到offer (4輪技術面+hr面)面試
- 「前端面試題系列1」今日頭條 面試題和思路解析前端面試題
- 2019年最新Java面試題及答案整理(上)Java面試題
- 記一次今日頭條面試面試
- 面試10家拿到7家offer 我都遇到了哪些面試題面試題
- 半年工作經驗今日頭條和美團面試題面經分享面試題
- 【面試寶典】如何拿到頭條offer就看你的程式碼有多剛?面試
- 高階Java開發面試解答,Java開發面試題及答案Java面試題
- 2019最新Web前端經典面試試題及答案,持續更新Web前端面試
- Android 面試題集 包含答案Android面試題
- Python開發面試題及部分答案分享!Python面試題
- 最新PHP面試題彙總(附答案)PHP面試題
- 最新精選Java面試題,附答案!Java面試題
- 2022年最新iOS面試題(附答案)iOS面試題
- iOS開發面試的43道最新面試題,讓你穩拿大廠offer!iOS面試題
- Android開發工程師面試指南(面試題集附答案、簡歷模板)Android工程師面試題
- HTML最新面試題(筆試面試題)HTML面試題筆試
- 30 道 Dubbo 面試題及答案面試題
- Java初中級面試題及答案Java面試題
- Java高階面試題及答案Java面試題
- 常見AI面試題及答案AI面試題
- Selenium 高頻面試題及答案面試題
- 碼農面試智力題及答案面試
- Android春招面經:二本渣院面試網易被拒,最終終於拿到騰訊+阿里offer(已入職騰訊)Android面試阿里
- 手記 《半年工作經驗今日頭條和美團面試題面經分享》面試題
- SQL崗位30個面試題,SQL面試問題及答案SQL面試題
- Linux面試題,淺析常見Linux命令面試題及答案Linux面試題
- 百度Android面試真題解析:二次面試終拿到offer,這些面試重點我都整理出來了!Android面試
- 最全前端開發面試問題及答案整理前端面試
- Android面試整理(附答案)Android面試
- 21年最新Python面試題及答案彙總詳解(上)Python面試題
- Java面試專屬視訊 最新Java阿里京東美團滴滴面試題及答案教程Java阿里面試題
- 能讓應屆生拿到阿里 Offer 的Java面試題阿里Java面試題
- Android開發社招面試經驗:深入解析android核心元件和應用框架,3面直接拿到offerAndroid面試元件框架