2022新鮮出爐,十一位Android大廠面試題,收好這份文檔
前言
經(jīng)過(guò)昨天的不懈努力,凌晨2點(diǎn)30才想下班,終于把所有的答案都整理出來(lái)了。11個(gè)大廠,128道真題。
一丶百度篇
1.關(guān)于OKhttp 和Retrofit
2.View的繪制流程
3.講一下觸摸的傳遞機(jī)制
4.自定義View主要重寫(xiě)哪個(gè)方法
5.講一下策略模式和狀態(tài)模式的各自的特點(diǎn)和區(qū)別
6.說(shuō)一下線程安全,線程同步的原子性,可見(jiàn)性和有序性
7.講一下雙重檢查鎖中的 volatile 關(guān)鍵字的作用
8.講一下jvm的堆棧
9.二叉樹(shù)的層次遍歷
10.自定義Navigator切換fragment
11.Navigation使用和源碼剖析
12.volatile的作用

二丶阿里篇
1.Android 插件化】Hook 插件化框架 ( Hook Activity 啟動(dòng)流程 |
Hook 點(diǎn)分析
2.Android中Handler處理Runnable任務(wù)的常見(jiàn)方法分析
3.為什么要有handler?
4.求二叉樹(shù)中兩個(gè)節(jié)點(diǎn)之間的最大距離
5.談?wù)勀銓?duì)Binder的認(rèn)識(shí)?
6.動(dòng)態(tài)代理實(shí)現(xiàn)
7.ASM 的原理
8.內(nèi)存泄漏常見(jiàn)場(chǎng)景以及解決方案
9.touch 事件源碼問(wèn)題。
10.Android自定義崩潰收集器捕獲java層和native層崩潰異常日志
11.如果 int 的值大于了 3 需要提示。
12.介紹下 flutter 的啟動(dòng)流程
13.介紹下 flutter 與 weex 的區(qū)別
14.組件化介紹一下
15.webview 與 js 交互的實(shí)現(xiàn)方法
16.介紹下 flutter_boost 的原理

三丶騰訊篇
1.MVVM,MVP,MVC
2.LiveData 處理事件最佳實(shí)踐
3.Handler,messageQueue懂多少說(shuō)多少,越詳細(xì)越好
4.View繪制的三個(gè)流程;
5.內(nèi)存泄漏常見(jiàn)場(chǎng)景以及解決方案?
6.項(xiàng)目里的webView是如何優(yōu)化加載速度的的
7.RecyclerView和ScrollView為什么不能一起使用
8.Synchronized鎖升級(jí)原理與過(guò)程深入剖析
9.HashMap的實(shí)現(xiàn)原理
10.進(jìn)程間通信方式有哪些,Binder講一下,和共享內(nèi)存的區(qū)別是什么
11.動(dòng)態(tài)代理和靜態(tài)代理區(qū)別
12.數(shù)據(jù)結(jié)構(gòu)和23種設(shè)計(jì)模式
13.RecyclerView的性能優(yōu)化分析
14.堆排序?qū)崿F(xiàn)

四丶京東篇
1.service的意義
2.Handler內(nèi)存泄漏相關(guān)
3.OkHttp源碼相關(guān)
4.手寫(xiě)Singleton
五丶字節(jié)篇
1.弱引用與軟引用
2.單例常見(jiàn)的實(shí)現(xiàn)方式
3.ReentrantLock如何實(shí)現(xiàn)公平鎖的
4.線程池里面非核心線程什么時(shí)候會(huì)被回收
5.handler機(jī)制
6.AsyncTask原理,
7.binder機(jī)制
8.ANR處理方法
9.RxJava 使用詳解
10.OKHTTP攔截器
11.Activity的啟動(dòng)流程
12.OKhttp,Retrofit
13.布局優(yōu)化,內(nèi)存優(yōu)化,崩潰優(yōu)化
14.kotlin
15.常用設(shè)計(jì)模式,
16.MVC,MVVM
17.main方法執(zhí)行之前發(fā)生了什么

六丶Bilibili篇
1.Activity的啟動(dòng)流程
2.intent可以傳遞的數(shù)據(jù)
3.Activity和Fragment的區(qū)別
4.項(xiàng)目用到了ViewModel,說(shuō)說(shuō)看他的原理
5.你說(shuō)到了內(nèi)存泄露,有用過(guò)別的內(nèi)存檢查的工具嗎,什么時(shí)候會(huì)發(fā)生內(nèi)存泄露
6.說(shuō)說(shuō)進(jìn)程和線程的理解
7.請(qǐng)說(shuō)說(shuō)看mvp和mvvm模式有什么區(qū)別嗎
8.APP的啟動(dòng)流程
9.對(duì)Handler的理解,handler的內(nèi)存泄露了解嗎
七丶網(wǎng)易篇
1.線程和進(jìn)程區(qū)別
2.HashMap
3.創(chuàng)建線程幾種方式
4.鎖、volatile
5.動(dòng)態(tài)代理
6.Handler
7.Binder
8.view繪制

八丶小米篇
1.handler機(jī)制
2.一個(gè)線程中幾個(gè)handler同時(shí)發(fā)送一個(gè)相同的消息,怎么分辨哪個(gè)消息是哪個(gè)handler發(fā)送的
3.Android服務(wù)的生命周期
4.Android持久化存儲(chǔ)的方式
5.Android廣播使用
6.自定義view哪個(gè)構(gòu)造方法是不能不重寫(xiě)的
7.java怎么使得一個(gè)同步方法變?yōu)楫惒椒椒?br>8.java 抽象類和接口的區(qū)別
9.抽象類的方法一定要繼承嗎

九丶攜程篇
1.Glide講一講
2.OKhttp攔截器
3.get和post請(qǐng)求區(qū)別
4.項(xiàng)目里面內(nèi)存優(yōu)化
5.LeakCanary原理及分析
6.Bitmap高效加載
7.大型APP啟動(dòng)優(yōu)化
8.渲染布局優(yōu)化
9.ViewStub懶加載
10.MVP和MVVM,談?wù)勀銓?duì)它們的了解
11.概說(shuō)23種設(shè)計(jì)模式
12.JVM內(nèi)存模型
13.垃圾回收gc講一講

十丶小紅書(shū)篇
1.Java深拷貝和淺拷貝的區(qū)別
2.自定義View是怎么繪制的?ViewGroup呢
3.Handler機(jī)制
4.TCP和UDP的區(qū)別
十一丶愛(ài)奇藝篇
1.Android布局層級(jí)過(guò)深為什么會(huì)對(duì)性能有影響?為什么Compose
沒(méi)有布局嵌套問(wèn)題?
2.kotlin協(xié)程
3.HashMap原理(第三章第10題)
4.算法:手寫(xiě)快排
5.Activity啟動(dòng)模式
6.Activity四大啟動(dòng)方式生命周期
7.有序廣播實(shí)例
8.SharedPreferences的詳解
9.xml解析方式
10.json與xml的區(qū)別,json為什么比xml更好
11.Android view繪制流程
12.surfaceView的顯示與隱藏
13.關(guān)于移動(dòng)端適配機(jī)型
14.ANR 什么時(shí)候出現(xiàn),如何排查
15.Android的幾種動(dòng)畫(huà)定義與使用
16.startService與bindService的區(qū)別
17.Service?;罘绞?br>18.泛型
19.重寫(xiě)equals方法需要重寫(xiě)hashCode方法嗎
