前言
每次面试前的准备都是到处查找资料,这次打算记录一下准备过程中的遇到的问题,作为对自己所掌握的知识点的一个总结,查漏补缺,也能让后续的面试更加顺利。本文主要是列出问题,答案也会视情况在后续文章更新。本文的内容后续也会持续更新。
Java篇
-
java
多态的实现原理。动态类型绑定相关。 -
volatile
关键字作用。内存可见性(jmm
的理解),禁止指令重排,无法保证原子性。 -
synchronized
关键字作用,实现原理。公平锁/非公平锁,可重入锁/不可重入锁,乐观锁/悲观锁,共享锁/排他锁。锁升级。 - 死锁的概念,什么情况下造成死锁。
-
HashMap
数据结构,扩容原理,java8
版本的链表转红黑树。HashMap
的源代码需要熟读,里面有很多经典代码设计。 -
ConcurrentHashMap
数据结构,如何get,扩容原理,扩容时其他线程如果感知,CAS
和synchronized
的使用。 - 线程池。为什么要用线程池。
ThreadPoolExecutor
的各个参数的具体含义。几种阻塞队列BlockingQueue
的使用和区别。线程池的种类以及其对应的参数。 -
join
的使用 -
wait
和sleep
的区别 -
Object
类有哪些方法 -
CopyOnWriteArrayList
如何实现同步 - 有哪些线程安全的容器类
Jvm篇
-
jvm
内存模型。线程共享区,非线程共享区。 -
GC
算法。标记-清除,复制算法,标记整理。GC
的目的是降低GC
频率。 -
GC root
如何选取。
Android篇
-
Android
事件分发机制。除了view
里面的那一套,你知道事件是怎么从点击屏幕传到Activity
的吗?IMS
的事件处理机制。 -
Activity
的生命周期。fragment
生命周期。service
生命周期。 - 卡顿的原理。如果做线上卡顿监控,具体如何实现。
- 如何定位内存泄漏,其实现原理是什么。
-
ANR
的概念,如何排查。ANR
具体触发的原理(延时消息)。 - 讲一讲
Handler
。Looper
,MessageQueue
相关,扩展到ThreadLocal
相关。底层的epoll
实现监听。消息延时的实现原理,post
的实现原理。 - 如何不压缩情况实现大长图的加载。
BitmapRegionDecoder
实现区域加载。 -
MVP
MVVC
架构 - 热修复。热修复的工作流程,
Tinker
框架的实现原理,AndFix
实现原理,Robust
实现原理。各个框架的优劣。 - 组件化。为什么要组件化?使用组件化的过程中遇到过哪些问题?怎么解决的?
- 插件化。四大组件的插件化实现原理,资源插件化的实现原理,资源冲突的解决方案。市面上各个插件化框架的实现原理
- 如何进程保活
-
ListView
图片加载错乱的原理和解决方案 -
RecyclerView
和ListView
的区别,性能差异 -
LRUCached
原理 SparseArray
-
SP
是进程同步的吗?如果做到进程同步 -
SurfaceView
,GLSurfaceView
,TextureView
,SurfaceTexture
的异同 -
BroadcastReceiver
和LocalBroadcastReceiver
区别 -
Bundle
机制 -
apk
打包过程 -
apk
安装过程 - 系统开机流程
-
Dalvik
和ART
区别 -
App
是如何做成沙箱化的 -
down
move
up
事件的传递 - 下拉通知栏对
activity
生命周期的影响 - 线上卡顿检测如何做
- 线上内存泄漏,
oom
如何检测 - R8 proguard
Jetpack篇
-
ViewModel
在横竖屏切换时为什么不销毁。onRetainNonConfigurationInstance
LiveData
Room
Android Framework篇
-
Activity
的启动流程 -
Service
的启动流程 -
BroadcastReceiver
的启动流程 -
ContentProvider
的启动流程 -
IMS
事件监听与分发 -
Android
有哪些IPC
手段。 -
Binder
实现原理。 -
Handler
如何实现延时消息的 -
Android
帧渲染原理 -
setContentView
的流程 - 进程启动过程
网络篇
-
https
如何验证证书的合法性 -
https
请求慢的解决方法 -
TCP
和UDP
区别与应用 -
Socket
和Websocket
的区别与应用
三方框架篇
-
okhttp
如何处理网络缓存的。有哪些拦截器 -
EventBus
实现原理 RxJava
-
Glide
Fresco
对比 -
Retrofit
实现原理
设计模式篇
- 单例模式。懒汉式,恶汉式,双重校验,静态内部类,枚举。手写单例模式。
- 手写观察者模式
-
Android
系统哪些地方用到了设计模式
网友评论