java基础
容器(HashMap、HashSet、LinkedList、ArrayList、数组等)
hashmap 哈希冲突
-
内存模型
垃圾回收算法(JVM)
垃圾回收机制和调用 System.gc()的区别?
类加载过程(需要多看看,重在理解,对于热修复和插件化比较重要)
classLoader反射
多线程和线程池种类
设计模式(六大基本原则、项目中常用的设计模式、手写单例等)
Java 四大引用
Java 的泛型
final、finally、finalize 的区别
接口、抽象类的区别
synchronized和volatile区别
Android
- activity生命周期, 两个activity的跳转/横竖屏切换生命周期的变化
- activity四种启动模式
- service生命周期, bindService/startService
- 内存泄漏和内存溢出区别和解决办法
- 安卓线程/进程间通信
- 自定义 View
- 事件拦截分发机制
- handler原理
- anr
- 性能优化和工具
- SurfaceView、TextureView、GLSurfaceView 区别及使用场景
- Android中的View动画和属性动画 、Android 动画 介绍与使用
- MVC、MVP、MVVM
- HandlerThread、ThreadLocal、AsyncTask、IntentService 原理及应用
- 热修复、插件化
- 组件化架构思路
- 系统打包流程
- Android 有哪些存储数据的方式
- Activity 启动流程,App 启动流程
- Binder 机制(IPC、AIDL 的使用)
- 为什么使用 Parcelable,好处是什么?
源码相关
- Glide :加载、缓存、LRU 算法 (如何自己设计一个大图加载框架) (LRUCache 原理)
- LeakCanary
- 插件化
- 热修复
- RXJava (RxJava 的线程切换原理)
- Retrofit (Retrofit 在 OkHttp 上做了哪些封装?动态代理和静态代理的区别,是怎么实现的)
- OkHttp