本人19年畢業于一家普通二本,考研涼了且沒有實習經驗,每天就是不斷地投簡歷、刷面經,感覺自己都要抑郁了
最后勉強進入了一家學校合作的外包公司干了3年,剛開始每個月拿著4-6000地薪水還要被迫接受996,雖然后面漲到了10k+,但仍感覺未來沒有希望。我決定做出改變,離開這里!
剛開始準備地時候其實并不輕松,感覺自己的技術層面還停留在3年前剛畢業的時候,對于當前互聯網企業的技術棧一概不通,每天上班在學習,下班也在學習,不斷地去提升自己的技術能力,也受到了很多同學的幫助,同時也在不斷的投簡歷,參加面試,一方面是可以檢測自己還有哪方面的缺漏,另一方面也是為了看自己學習有沒有效果,能不能收到offer。
大廠小廠加起來攏共面了二十幾家,拿到了阿里offer,以下面試題不分是哪家公司,主打的就是一個記錄,以及給大家參考
一、Java相關方面
- 抽象類與接口的區別?
- 分別講講 final,static,synchronized關鍵字可以修飾什么,以及修飾后的作用?
- Java 中深拷貝與淺拷貝的區別?
- 什么是反射機制?反射機制的應用場景有哪些?
- 談談如何重寫equals()方法?為什么還要重寫hashCode()?
- 請說一下HashMap與HashTable的區別
- 談一談ArrayList的擴容機制?
- 請簡述 LinkedHashMap 的工作原理和使用方式?
- Java 中使用多線程的方式有哪些?說一下線程的幾種狀態?
- 談談線程死鎖,如何有效的避免線程死鎖?
- 什么是線程池?如何創建一個線程池?
- 談一談JAVA垃圾回收機制?
- JVM、Dalvik、ART三者的原理和區別?
- JMM是什么?它存在哪些問題?該如何解決?
二、Android方面
- Activity 與 Fragment 之間常見的幾種通信方式?
- 對于 Context,你了解多少?
- 談一談startService和bindService的區別,生命周期以及使用場景?
- 簡單介紹下ContentProvider是如何實現數據共享的?
- 說下切換橫豎屏時Activity的生命周期?
- 說說Activity加載的流程?
- HandlerThread 的使用場景和用法?
- 談談 Handler 機制和原理?
- 試從源碼角度分析Handler的post和sendMessage方法的區別和應用場景?
- 談談Android的事件分發機制?
- 談談自定義View的流程?
- 談談你對Android性能優化方面的了解?
- 自定義 Handler 時如何有效地避免內存泄漏問題?
- 談談Android中內存優化的方式?
- 談談你是如何優化App啟動過程的?
- 請回答一下Android進程間的通信方式?
- 請簡要談談Android系統的架構組成?
- 請簡述一下 Android 7.0 的新特性?
- 什么是冒泡排序?如何優化?
三、Kotlin方面
- 請簡述一下什么是 Kotlin?它有哪些特性?
- Kotlin中實現單例的幾種常見方式?
- 在Kotlin中,什么是內聯函數?有什么作用?
- 請談談Kotlin中的Coroutines,它與線程有什么區別?有哪些優點?
- 說說Kotlin中的Any與Java中的Object 有何異同?
- Kotlin中的數據類型有隱式轉換嗎?為什么?
- Kotlin中集合遍歷有哪幾種方式
四、音視頻方面
- 怎么做到直播秒開優化?
- 數字圖像濾波有哪些方法?
- 圖像可以提取的特征有哪些?
- FFMPEG:圖片如何合成視頻
- 常見的音視頻格式有哪些?
- 請敘述MPEG視頻基本碼流結構?
- 說一說ffffmpeg的數據結構?
- 如何降低延遲?如何保證流暢性?如何解決卡頓?解決網絡抖動?
- 平時說的軟解和硬解,具體是什么?
五、Flutter方面
- Dart 語言的特性?
- Dart 多任務如何并行的?
- dart是值傳遞還是引用傳遞?
- Flutter 特性有哪些?
- Widget 和 element 和 RenderObject 之間的關系?
- 使用mixins的條件是什么?
- Stream 兩種訂閱模式?
- Flutter中的Widget、State、Context 的核心概念?是為了解決什么問題?
- 說一下Hot Reload,Hot Restart,熱更新三者的區別和原理
- Flutter 如何與 Android iOS 通信?
- 說一下什么是狀態管理,為什么需要它?
六、算法方面
- 如何運??分查找算法
- 如何去除有序數組的重復元素
- 如何在無線序列中隨機抽取元素
- 如何判定括號合法性
- 如何尋找缺失和重復的元素
七、Android Framework方面
- 你了解Android系統啟動流程嗎?
- 1.2system_server 為什么要在 Zygote 中啟動,而不是由 init 直接啟動呢?
- 1.5 Zygote 為什么不采用 Binder 機制進行 IPC 通信?
- Binder有什么優勢
- Binder是如何做到一次拷貝的
- MMAP的內存映射原理了解嗎?
- 說說四大組件的通信機制
- 簡述下 Handler 機制的總體原理?
- Handler 或者說 Looper 如何切換線程?
- Handler、Mesage 和 Runnable 的關系如何理解?
- Handler 為什么可能導致內存泄露?如何避免?
- Handler在系統當中的應用
- ActivityManagerService是什么?什么時候初始化的?有什么作用?
- Instrumentation是什么?和ActivityThread是什么關系?
- ActivityManagerService和zygote進程通信是如何實現的。
文末
整理不易,白嫖太易!有需要的讀者朋友們可以查看一下個人主頁。以上都可分享~