熟练掌握

未熟练掌握

由于各种各类的知识点及面试相关问题较多,在此仅记录总结比较重要的基础知识点和高频的面试题。

Android面试之网络篇

TCP和UDP

HTTP和HTTPS

HTTP1.0、1.1和2.0的区别

HTTPS原理和请求过程

对称和非对称加密算法

网络耗时优化

Android面试之Java基础篇

特点和特性

面向对象和面向过程

八大基本数据类型

四大引用类型

常见面试题锦集
  • equals方法和==的区别
  • String、StringBuilder和StringBuffer区别
  • 为什么String不可变,不可变对象的好处
  • final、finally、finalize区别
  • Exception和Error有什么区别
  • RunTimeException和其他Exception区别
  • 泛型和类型擦除

Android面试之Java进阶篇

JVM的内存分配

GC垃圾回收机制

ClassLoader加载机制

Class类的加载过程

线程、多线程、线程池

锁、死锁

常见面试题锦集
  • Class类的加载执行顺序(包含静态变量和方法)
  • 如何停止正在运行的线程
  • 线程池ThreadPool的构造函数
  • 进程和线程的区别
  • volatile的作用,能否保证线程安全
  • synchronized和volatile的区别
  • synchronized和ReentrantLock的区别

Android面试之基础篇

Activity

Fragment

Service

BroadcastReceiver

ContentProvider

四大组件区别和Context

Animation

常见面试题锦集
  • APK安装流程
  • Activity启动流程
  • Serializable和Parcelable区别
  • Activity、Window、View关系
  • Activity获取View宽高的三种方式
  • LruCache缓存机制
  • SharedPreferences优缺点,如何优化
  • ListView、RecyclerView区别

Android面试之进阶篇

Handler机制

Binder机制

进程和多线程

View事件分发

View绘制流程

Gradle构建流程

内存泄漏

性能优化

常见面试题锦集
  • Handler延迟消息机制
  • Handler异步消息和同步屏障
  • Looper怎么保证在线程里唯一
  • 进程间通信方式有哪些
  • 内存映射(mmap)原理
  • Binder的最大线程数量

Android面试之源码篇

Kotlin空安全原理

Kotlin协程原理

OKHttp原理

Retrofit原理

Android面试之数据结构篇

线性结构

非线性结构

ArrayList数据结构

HashMap数据结构

HashSet数据结构

二叉树的遍历和深度

Android面试之算法篇

算法的特征和设计原则

算法的空间和时间复杂度

算法的分类和理解