一天時間,讓你拿下騰訊Offer

1、前言

這兩個月聽的最多的兩個詞就是 疫情 和 裁人 ,做爲被裁大軍中的一員,個人關鍵詞就是 遺憾 和 還好 。前端

遺憾的是如今的項目還有不少想象的空間,可是就要走向盡頭; 還好 的是畢業幾年來一直沒有以一種打工的心態在工做,寒冬就寒冬,怕個錘子。面試

最近在整理面試方面的文章,由於有小夥伴問我是怎麼準備面試的,也有許多小夥伴正面臨着面試,我也想談談我最近的一些想法和計劃,你們一塊兒討論。算法

總體分爲如下兩個方面:數據庫

·自我介紹 & 項目經驗編程

·知識儲備設計模式

2、自我介紹 & 項目經驗

2.1 自我介紹

這個是第一個要準備的東西,面試多幾回,慢慢完善就好,重要的是 有條理 。能夠從下面幾點入手,關鍵是第二和第三點:緩存

·以前工做的公司、崗位及工做方向。性能優化

·團隊構成,在團隊中的位置及承擔的責任。網絡

·爲團隊作出的主要貢獻,對於這部分涉及到的 項目經歷以及延伸出的知識點 必定要重點準備。多線程

·可以從側面反映出你優勢的愛好。

·若是能從其它渠道瞭解到你招人的部門所作的東西,那麼也能夠談談對他們的一些瞭解以及本身的願望,沒有就算了,這個是可選項。

2.2 項目經驗

項目經驗這塊因人而異,把以爲作的有亮點的東西挑出來,從四個方面來準備:

·功能模塊的實現

·達到了什麼效果

·遇到了什麼問題,是如何解決的

·涉及到的相關知識點

項目經驗和知識點實際上是一個雙向的過程,要 試圖去找到它們之間的聯繫 :

·談到項目經驗的時候,能夠說:作完 xx 以後,我還去了解了一下 yy 背後的原理,xxx,這裏體現的是 你是否有求知慾 。

·談到知識點的時候,能夠說:yy 的原理是這樣的,在 xx 項目中我是如何應用它來解決問題的,這裏體現的是 你是否具有把知識付諸實踐的能力 。

2.3 遇到的問題

必定要準備,很重要! 問題涉及到知識點也要都弄清楚。

平時項目可能比較忙,遇到問題急着解決。可是要學着先把問題先記錄下來,以後再按下面的步驟進行總結,有條理地進行闡述:

·遇到問題

·分析過程

·解決方案

·結果

3、知識儲備

不少人準備面試的時候,大多數就會這樣的,打開百度,輸入 「Android 面試題」,找幾個多的開始看。

這雖然看起來很天然,可是並非一種 健康的方式 ,面試題的做用應當是查缺補漏,上學的時候也不是直接發習題冊而後對着答案學習吧?

知乎上有個問題,叫作 如何高效學習 ,裏面有一個回答我以爲很符合我本身的觀點,就是 創建起本身的知識體系 ,創建知識體系的目的在於:

·鞏固記憶。

·認識本身,找到本身的優點及不足。

·把握複習的進度。

·經驗總結。

目前我本身的總結的會分爲如下幾個大點:

3.1 Java 基礎知識

·面向對象的基本思想

·Object 類相關: Object 類的幾個關鍵函數、 String 涉及到的常量池概念,序列化 & 反序列化。

·重要關鍵字: final 、 static 。

·內部類:內部類的分類、應用場景、內部類編譯成 class 後是怎麼樣的。

·抽象類 & 接口:區別、應用場景。

·編碼:編碼的目的、分類。

·異常:異常體系、自定義異常。

·註解:註解的基本概念、分類、編譯時註解 & 運行時註解。

·容器:重要容器的內部實現、容器間的對比。

·內存模型。

·垃圾回收。

·類加載的過程。

·泛型:分類、通配符 & 上下邊界、泛型擦除。

·反射:使用。

3.2 Android 基礎知識

·Dalvik 、 Art 虛擬機

·Activity :生命週期、 launchMode 。

·Fragment :生命週期、懶加載、兩種 Adapter 之間的區別。

·BroadcastReceiver :基本概念、廣播分類、權限。

·Service :生命週期、 onStartCommand 的返回值、 startService 和 bindService 的區別、相同進程 & 不一樣進程的交互、 IntentService 實現原理。

·重要的工具類 & 源碼實現: AsyncTask 、 HandlerThread 、 Handler 、 IntentService 、 LruCache 、 LinkedHashMap 、 SparseArray 。

·RecyclerView :緩存原理、和 ListView 的對比、 Adapter 如何適配多種 layout 。

·存儲:數據庫升級 & 優化、 ContentProvider , SharePreference 。

·SDK 版本升級的兼容問題。

·Android 的權限管理機制。

3.3 圖片

·Bitmap 相關: Bitmap 的大小計算、質量、 inJustDecodeBounds 、 inBitmap 。

·幾種圖片格式的對比、壓縮。

·大圖加載: BitmapRegionDecoder

3.4 算法

·別無捷徑,刷題,可是刷題的時候,要按照題的類型去總結。

3.5 開源框架

·RxJava :操做符的應用場景、重點操做符的內部實現、和 RxJava 的對比。

·Glide :流程、緩存相關的實現。

·Retrofit :流程、動態代理 & 註解解析。

·OkHttp :流程、隊列實現、緩存實現。

3.6 性能

·

性能優化技巧:啓動速度優化、佈局優化、內存優化、電量優化、 APK 大小優化、列表滑動優化。

·

·

性能優化工具: TraceView 、 Systrace 、調試 GPU 過分繪製 & GPU 呈現模式分析、 Hierarchy Viewer 、 MAT 、 Memory Monitor & Heap Viewer & Allocation Tracker 、 LeakCanary 、 Lint 。

·

·

ANR

·

·

ANR 緣由

·

·

ANR 產生過程源碼分析

·

·

信息收集過程

·

·

trace 文件分析

·

·

分析基本流程

·

·

具體示例

·

·

如何避免產生 ANR

·

·

性能實踐:解決過的性能問題,從 遇到問題、分析問題、解決問題、結果 四個點進行闡述。

·

3.7 View

·繪製流程: measure 、 layout 、 draw 三個關鍵流程。

·事件分發:事件分發的原理、處理過的滑動衝突問題。

·自定義 View : Canvas & Path ,實現過的比較複雜的自定義 View 。

3.8 架構

·MVP : MVP 的思想 & 優劣勢、在項目中的應用、

3.9 源碼

·

AMS

·

·

WMS

·

·

Binder

·

·

應用啓動流程

·

·

APK 相關知識點

·

·

APK 構成: resources.arsc 組成、 AndroidManifest.xml 、 aapt 做用及原理

·

·

APK 打包過程

·

·

APK 安裝過程

·

·

APK 簽名 & 校驗原理

·

·

dexopt 原理

·

3.10 網絡

·基礎知識:看一下對於 <<計算機網絡>> ,重點是網絡分層模型、 TCP/UDP 、 HTTP/HTTPS 。

3.11 設計模式

按照 23 種網絡模型、三個分類進行總結,每種設計模式包含如下三個方面,至少要準備經常使用的幾個:

UML

Android

3.12 多線程

·看併發編程的藝術,這本書的目錄就是多線程最好的知識體系。

·遇到過的多線程問題、怎麼解決的。

3.13 Gradle

·經常使用配置。

·多渠道打包。

3.14 插件化

·插件化的核心思想。

·幾種插件化框架實現的原理。

3.15 組件化

Arouter

3.16 Kotlin

·有用到的能夠看看。

3.17 多媒體

·音頻、視頻播放。

3.18 大前端

·ReactNative 、 Flutter :沒學過的能夠了解一下思想。

3.19 JNI

·調用實現方式。

4、結語

我一直以爲技術面試不是考試,考前背背題,發給你一張考卷,答完交卷等通知。

首先,技術面試是一個 認識本身 的過程,知道本身和外面世界的差距。

更重要的是,技術面試是一個雙向瞭解的過程,要讓對方發現你的閃光點,同時也要 試圖去找到對方的閃光點 ,由於他之後可能就是你的同事或者領導,因此,面試官問你有什麼問題的時候,不要說沒有了,要去試圖瞭解他的工做內容、瞭解這個團隊的氛圍。

找工做無非就是看三點:和什麼人、作什麼事、給多少錢,要給這三者在本身的內心劃分一個比例。

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

相關文章
相關標籤/搜索