
為什么會想離職
又要交房租了,工資怎么還不發?每個月總覺得錢不夠花,工資總是跟不上消費,什么時候能漲個工資呢?
現在上班猶如上墳一樣,已經找不到半點成就感,每天各種煩心事,各種瑣事永遠做不到,
我們為什么會想離職?無非就是以上兩種原因:錢沒給夠,干的不開心,想換個環境,如果你已經動了換作業的心思,趁著金三銀四,可以行動準備起來了,
去年年經歷了互聯網寒冬和疫情,去年疫情后開工更加糟糕,有讀者告知上班的第一天就被 cai ,在那之后幾天,滴滴還官宣過冬,將 cai 員 15 %,波及員工超 2000 人,因此跳槽也要謹慎,如何跳槽拿到心儀的 offer 呢?
簡歷
首先是簡歷,一般找一個模板,填寫掌握的技能和專案經歷即可,
專案clone后,個性Resuem.md即可,然后匯出為pdf檔案,
簡歷建議長度為2頁,太長太短都不好,
建議用掌握與熟練掌握取代了解與精通,
很多人經常也會遇到很多關于簡歷制作,職業困惑、HR經典面試問題回答等有關面試的問題,同樣我也搜集整理了全套簡歷制作、金三銀四社招困惑、HR面試等問題決議,有疑問,可以提供專業的解答,

面試題
五遍刷題法:
- 第一遍,直接看解法
多解法,比較解法優劣,默寫好的解法
- 第二遍,打開leetcode,直接開始寫
多種解法比較,調優
-
第三遍,過一天之后,再重復做題
-
第四遍,過了一周,再來反復練、
-
第五遍,面試前一周,恢復性訓練
通過以上方法重復練習,大概刷100題就足以應付面試,如果每天刷3道,大概準備一個月即可
接下來是整理的一系列大廠的面試題及詳細決議:(面試題的詳細決議我都整理成了幾個檔案,有需要的可以這里直接領取,)
美團 Android 面試真題決議
Android 基礎知識點
- 四大組件的生命周期
- Activity 之間的通信方式
- 橫豎屏切換的時候,Activity 各種情況下的生命周期
- Activity 與 Fragment 之間生命周期比較
- Activity 上有 Dialog 的時候按 Home 鍵時的生命周期
- 兩個 Activity 之間跳轉時必然會執行的是哪幾個方法?
- 前臺切換到后臺,然后再回到前臺,Activity 生命周期回呼方法, 彈出 Dialog,生命值周期回呼方法,
- Activity 的四種啟動模式對比
- Activity 狀態保存于恢復
- fragment 各種情況下的生命周期是如何管理的
- Service 的開啟方式,原理是怎樣的?
- 請描述一下 Service 的生命周期
- .........
Android 原始碼相關分析
- Android 影片框架實作原理
- Android 各個版本 API 的區別
- Requestlayout,onlayout,onDraw,DrawChild 區別與聯系
- invalidate 和 postInvalidate 的區別及使用
- Activity-Window-View 三者的差別
- 如何優化自定義 View,你進行優化的一般方向是怎樣的?
- 低版本 SDK 如何實作高版本 api?
- 描述一次網路請求的流程
- HttpUrlConnection 和 okhttp 關系
- Bitmap 物件的理解
- looper 架構
- .........
常見的一些原理性問題
- Handler 機制和底層實作
- Handler、Thread 和 HandlerThread 的差別
- handler 發訊息給子執行緒,looper 怎么啟動?
- 關于 Handler,在任何地方 new Handler 都是什么執行緒下?
- ThreadLocal 原理,實作及如何保證 Local 屬性?
- 請解釋下在單執行緒模型中 Message、Handler、Message Queue、Looper 之間的關系
- 請描述一下 View 事件傳遞分發機制
- Touch 事件傳遞流程
- 事件分發中的 onTouch 和 onTouchEvent 有什么區別,又該如何使用?
- View 和 ViewGroup 分別有哪些事件分發相關的回呼方法
- View 重繪機制
- .........

百度 Android 面試真題決議
Android 面試題
- 跨行程通信的幾種方式
- wait 和 sleep 的區別
- String,StringBuffer,StringBuilder 的區別
- View 和 SurfaceView 的區別
- View 的繪制原理
- 簡述 JNI
- 簡述 TCP,UDP,Socket
- 音視頻相關類
- 行程和執行緒的區別
- 記憶體泄露如何查看和解決
- View 的分發機制,滑動沖突
- RecyclerView 和 ListView 的區別
- .........
Java 面試題
- HashMap
- ArrayList
- LinkedList
- Hashset 原始碼分析
- 記憶體模型
- 垃圾回收演算法(JVM)
- 垃圾回識訓制和呼叫 System.gc()的區別?
- 類加載程序
- 反射
- 多執行緒和執行緒池
- HTTP、HTTPS、TCP/IP、Socket 通信、三次握手四次揮手 程序
- 設計模式(六大基本原則、專案中常用的設計模式、手寫 單例等)
- .........
kotlin
- ==、===和 equal 的區別?
- var 和 val 的區別?
- Kotlin 中默認引數的作用以及原理?
- Kotlin 中頂層函式的原理
- 中綴函式是什么?注意點?
- 解構函式的本質?
- 擴展函式的本質?
- 擴展函式和成員函式的區別?
- Kotlin 中常用的類的修飾符有哪些?
- Kotlin 中可見性修飾符有哪些?
- Kotlin 中的內部類和 Java 中的內部類有什么不同?
- Kotlin 屬性代理背后原理?
- .........
網路
- HTTP 是哪一層的協議,常見的 HTTP 狀態碼有哪些,分別代表什么意思?
- HTTP 1.1 和 HTTP 2 有什么區別?
- HTTP 和 HTTPS 有什么區別?
- SSL/TLS 的握手程序?
- TCP 的三次握手程序,為什么需要三次,而不是兩次或者四次?
- TCP 的四次揮手程序?
- TCP 和 UDP 有什么區別?
- .........

華為Android 面試真題決議
Java 基礎
- 資料型別
- String
- 運算
- 關鍵字
- Object 通用方法
- 繼承
- 反射
- .........
Java 容器
- 容器中的設計模式
- Vector
- CopyOnWriteArrayList
- LinkedList
- HashMap
- ConcurrentHashMap
- .........
Java 并發
- 使用執行緒
- 基礎執行緒機制
- 中斷
- 互斥同步
- 執行緒之間的協作
- 執行緒狀態
- J.U.C - AQS
- .........
Android 知識點匯總
- Activity
- Fragment
- Service
- BroadcastReceiver
- ContentProvider
- 資料存盤
- View
- 行程
- Parcelable 介面
- IPC
- Bitmap
- .........
Android 擴展知識點
- ART
- Apk 包體優化
- Hook
- Proguard
- 架構
- Jetpack
- NDK 開發
- 計算機網路基礎
- 類加載器
- .........
Android 開源庫原始碼分析
- LeakCanary
- EventBus
- Glide
- install
- ARouter
- 插件化(不同插件化機制原理與流派,優缺點, 局限性)
- 熱修復
- RXJava (RxJava 的執行緒切換原理)
- Retrofit
- OkHttp
- .........
設計模式匯總
- 設計模式分類
- 面向物件六大原則
- 工廠模式
- 單例模式
- 建造者模式
- 原型模式
- 配接器模式
- 觀察者模式
- 代理模式
- 責任鏈模式
- .........
常見面試演算法題匯總
- 排序
- 二叉樹
- 鏈表
- 堆疊 / 佇列
- 二分
- 哈希表
- 堆 / 優先佇列
- 二叉搜索樹
- 陣列 / 雙指標
- 貪心
- 字串處理
- .........

騰訊 Android 面試真題決議
Java 基礎部分
- HashMap 和 HashTable 以及 CurrentHashMap 的區別
- synchronized 和 volatile 、ReentrantLock 、CAS 的 區別
- JVM 類加載機制、垃圾回收演算法對比、Java 虛擬機結 構等
- Java 的四大參考
- Java 的泛型,<? super T> 和 <? extends T> 的區別
- Java 執行緒有哪些狀態,有哪些鎖,各種鎖的區別
- final 、finally、finalize 區別
- 介面和抽象類的區別
- sleep 、wait、yield 的區別,wait 的執行緒如何喚醒它?
- java 中==和 equals 和 hashCode 的區別
- String、StringBuffer、StringBuilder 區別
- .........
Jvm部分
- Jvm 記憶體區域是如何劃分的?
- Jvm 記憶體模型是怎么樣的?
- String s1 = "abc"和 String s2 = new String("abc")的區別, 生成物件的情況
- 如何判斷物件可回收?
- GC 的常用演算法?
- Minar GC 和 Full GC 的區別?
- 說一下四種參考以及他們的區別?
- 類加載的程序?
- 類加載的機制,以及為什么要這樣設計?
- .........
計算機網路部分
- TCP 與 UDP 的區別
- 三次握手、四次揮手,為啥是三次不是兩次?
- HTTPS 和 HTTP 的區別,HTTP 2.0,3.0?
- 瀏覽器輸入一個 URL,按下回車網路傳輸的流程?
- TCP 建立連接后,發包頻率是怎樣的?
- OKHttp
- 如何驗證證書的合法性?
- https 中哪里用了對稱加密,哪里用了非對稱加密,對加 密法(如 RSA)等是否有了解?
- client 如何確定自己發送的訊息被 server 收到?
- 談談你對 WebSocket 的理解
- WebSocket 與 Socket 的區別
- 談談你對安卓簽名的理解
- 請解釋安卓為啥要加簽名機制?
- .........
Android 面試題
- 什么是 ANR 如何避免它?
- Activity 和 Fragment 生命周期有哪些?
- 橫豎屏切換時候 Activity 的生命周期
- AsyncTask 的缺陷和問題,說說他的原理
- onSaveInstanceState() 與 onRestoreIntanceState()
- android 中行程的優先級?
- Bunder 傳遞物件為什么需要序列化?Serialzable 和 Parcelable 的區別?
- 影片
- Context 相關
- Android 各版本新特性
- Json
- Jar 和 Aar 的區別
- Android 為每個應用程式分配的記憶體大小是多少
- Merge、ViewStub 的作用
- ContentProvider 使用方法
- Android 怎么加速啟動 Activity?
- .........
Android Framework 相關
- Android 系統架構
- View 的事件分發機制?滑動沖突怎么解決?
- View 的繪制流程?
- 跨行程通信
- Android 系統啟動流程是什么?
- 啟動一個程式,可以主界面點擊圖示進入,也可以從一 個程式中
- AMS 家族重要術語解釋
- App 啟動流程
- ActivityThread 作業原理
- 說下四大組件的啟動程序,四大組件的啟動與銷毀的方 式
- AMS 是如何管理 Activity 的?
- 理解 Window 和 WindowManager
- WMS 是如何管理 Window 的?
- 大體說清一個應用程式安裝到手機上時發生了什么?
- .........
性能優化專題
- 你們做了哪些穩定性方面的優化?
- 性能穩定性是怎么做的?
- 業務穩定性如何保障?
- 如果發生了例外情況,怎么快速止損?
- 啟動優化是怎么做的?
- 啟動優化有哪些容易忽略的注意點?
- 你們記憶體優化專案的過程是怎么做的?
- 你做了記憶體優化最大的感受是什么?
- 你在做布局優化的程序中用到了哪些工具?
- 布局為什么會導致卡頓,你又是如何優化的?
- 做完布局優化有哪些成果產出?
- .........
演算法合集
- 排序
- 二叉樹
- 鏈表
- 堆疊 / 佇列
- 二分
- 哈希表
- 堆 / 優先佇列
- 二叉搜索樹
- 陣列 / 雙指標
- 貪心
- 字串處理
- .........
kotlin 專題
- 基礎
- 函式
- 類、物件和介面
- lambda
- 型別系統
- 協程
- .........
flutter 專題
Dart 當中的 「..」表示什么意思?
Dart 的作用域
Dart 是不是單執行緒模型?是如何運行的?
Dart 是如何實作多任務并行的?
說一下 Dart 異步編程中的 Future 關鍵字?
說一下 Dart 異步編程中的 Stream 資料流?
請簡單介紹下 Flutter 框架,以及它的優缺點?
介紹下 Flutter 的理念架構
介紹下 FFlutter 的 FrameWork 層和 Engine 層,以及它們 的作用
介紹下 Widget、State、Context 概念
StatefulWidget 的生命周期
- .........
JNI 模塊專題
- 靜態注冊
- 動態注冊
- 資料型別映射
- 物件陣列參考型別
- jni 函式默認引數
- jni 是如何訪問 java 中的方法和欄位
- jni 訪問 java 中的靜態方法
- jni 訪問 java 中的欄位
- jni 訪問 Java 中的靜態欄位
- jni 中更新 java 的欄位內容
- jni 中創建 java 類實體
- jni 中的例外
- 常用函式封裝
- .........

職業規劃
如果你的職業技能滿足了面試崗位的需求,剩下的面試官會關注你對自己的職業規劃和想法,切記不要好高騖遠,一山更比一山高,
我覺得低調做人高調做事更符合我們程式員的性格,對技術的渴望和追求不斷提升自我才可以讓你在這個專業領域走的更遠,最后衷心祝福大家找到好的歸宿,
最后
多余的話就不講了,接下來將分享面試的一個復習路線,如果你也在準備面試但是不知道怎么高效復習,可以參考一下我的復習路線,有任何問題也歡迎一起互相交流,加油吧!
這里給大家提供一個方向,進行體系化的學習:
1、看視頻進行系統學習
前幾年的Crud經歷,讓我明白自己真的算是菜雞中的戰斗機,也正因為Crud,導致自己技術比較零散,也不夠深入不夠系統,所以重新進行學習是很有必要的,我差的是系統知識,差的結構框架和思路,所以通過視頻來學習,效果更好,也更全面,關于視頻學習,個人可以推薦去B站進行學習,B站上有很多學習視頻,唯一的缺點就是免費的容易過時,
另外,我自己也珍藏了好幾套視頻,有需要的我也可以分享給你,
2、進行系統梳理知識,提升儲備
客戶端開發的知識點就那么多,面試問來問去還是那么點東西,所以面試沒有其他的訣竅,只看你對這些知識點準備的充分程度,so,出去面試時先看看自己復習到了哪個階段就好,
系統學習方向:
- 架構師筑基必備技能:深入Java泛型+注解深入淺出+并發編程+資料傳輸與序列化+Java虛擬機原理+反射與類加載+動態代理+高效IO
- Android高級UI與FrameWork原始碼:高級UI晉升+Framework內核決議+Android組件內核+資料持久化
- 360°全方面性能調優:設計思想與代碼質量優化+程式性能優化+開發效率優化
- 解讀開源框架設計思想:熱修復設計+插件化框架解讀+組件化框架設計+圖片加載框架+網路訪問框架設計+RXJava回應式編程框架設計+IOC架構設計+Android架構組件Jetpack
- NDK模塊開發:NDK基礎知識體系+底層圖片處理+音視頻開發
- 微信小程式:小程式介紹+UI開發+API操作+微信對接
- Hybrid 開發與Flutter:Html5專案實戰+Flutter進階
知識梳理完之后,就需要進行查漏補缺,所以針對這些知識點,我手頭上也準備了不少的電子書和筆記,這些筆記將各個知識點進行了完美的總結,
3、讀原始碼,看實戰筆記,學習大神思路
“編程語言是程式員的表達的方式,而架構是程式員對世界的認知”,所以,程式員要想快速認知并學習架構,讀原始碼是必不可少的,閱讀原始碼,是解決問題 + 理解事物,更重要的:看到原始碼背后的想法;程式員說:讀萬行原始碼,行萬種實踐,
主要內含微信 MMKV 原始碼、AsyncTask 原始碼、Volley 原始碼、Retrofit原始碼、OkHttp 原始碼等等,

4、面試前夕,刷題沖刺
面試的前一周時間內,就可以開始刷題沖刺了,請記住,刷題的時候,技術的優先,演算法的看些基本的,比如排序等即可,而智力題,除非是校招,否則一般不怎么會問,
關于面試刷題,我個人也準備了一套系統的面試題,幫助你舉一反三:

總結
改變人生,沒有什么捷徑可言,這條路需要自己親自去走一走,只有深入思考,不斷反思總結,保持學習的熱情,一步一步構建自己完整的知識體系,才是最終的制勝之道,也是程式員應該承擔的使命,
耗時一年多整理的一系列Android學習資源:Android原始碼決議、Android第三方庫原始碼筆記、Android進階架構師七大專題學習、歷年BAT面試題決議包、Android大佬學習筆記等等
這些內容均免費分享給大家,需要完整版的朋友,點這里可以看到全部內容,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/264190.html
標籤:其他
上一篇:聽不懂《創4》外籍小哥哥在說啥?是時候寫個翻譯器輔助女友追星了
下一篇:求幫助
