一.Java基础
1.Java语法
关键字:接口和抽象类,反射,内部类,字符串,范型,枚举,引用类型,注解,NIO,动态代理
2.集合(数据结构)
关键字: List,Map,Three
3.线程
关键字:线程状态,线程锁,线程同步,线程池,线程方法(join、interrupt、yield),线程可见性(volatile)
4.Java虚拟机
关键字:内存模型,GC机制和算法、ClassLoader
二.Android
1.四大组件和控件
关键字:Activity,Service(start、bind),BroadcastReceiver,ContentProvider,Fragment,ListView,RecyclerView,ViewPager(Adapter),ConstraintLayout,CoordinatorLayout
2.Framework机制
关键字:View绘制,Touch事件分发,消息循环机制,动画,Context,Binder,AMS,WMS,PMS,SharedPreferences
3.Android虚拟机
关键字:DVM,ART,ClassLoader
4.Android性能优化
关键字:绘制优化(布局,过度绘制),内存优化
5.Android开源框架
关键字:图片库,网络库,数据存储,进程保活,热修复,换肤库
6.Android构建
关键字:Gradle,apk签名,Instant Run
三.数据结构和算法
1.常用数据结构
关键字:数组,链表,栈,队列、树(Tree),图,List,Map,SparseArray
2.算法题
关键字:排序,链表逆转,递归,时间复杂度、空间复杂度
四.设计模式和架构
1.23种设计模式
关键字:单例模式,构造者模式,工厂模式,代理模式,装饰模式,责任链模式
2.MVC,MVP,MVVM
关键字:mvc,mvp,mvvm
3.插件化和组件化
关键字:插件化框架,组件化框架,分层架构