JAVA基础
1. 类加载和反射
(1)Classloader 类加载机制 双亲委派模型
https://blog.csdn.net/briblue/article/details/54973413
https://www.cnblogs.com/xujian2014/p/5551153.html
(2)反射
https://www.cnblogs.com/ysocean/p/6516248.html
2. JVM 内存模型
开线程影响哪块内存
https://www.cnblogs.com/xing901022/p/7725961.html
https://blog.csdn.net/suifeng3051/article/details/52611310
3. 垃圾回收
https://www.cnblogs.com/xiaoxi/p/6486852.html
垃圾回收机制与调用System.gc()区别
Java中对象的生命周期
https://blog.csdn.net/huangzhen0914/article/details/45172597
4. 集合
集合的接口和具体实现类,介绍
List,Set,Map的区别
(1)set
(2)List
arraylist和linkedlist的区别,以及应用场景
https://mp.csdn.net/postedit/82500925
(3)Map
HashMap实现原理,怎么解决碰撞
https://www.cnblogs.com/chengxiao/p/6059914.html
https://blog.csdn.net/andylau_zhl/article/details/78871917
LinkedHashMap实现原理
https://www.cnblogs.com/xiaoxi/p/6170590.html
https://blog.csdn.net/justloveyou_/article/details/71713781
TreeMap实现原理
https://www.cnblogs.com/skywang12345/p/3310928.html
ConcurrentHashMap 的实现原理
https://blog.csdn.net/fjse51/article/details/55260493
https://blog.csdn.net/programmer_at/article/details/79715177
Collections.synchronizedMap()与ConcurrentHashMap的区别
https://blog.csdn.net/lanxiangru/article/details/53495854
(4)Hash死循环解析
https://blog.csdn.net/xiaohui127/article/details/11928865
https://blog.csdn.net/littleschemer/article/details/52199689
https://www.jianshu.com/p/1e9cf0ac07f4
5. 抽象类和接口
https://mp.csdn.net/postedit/80389725
6. 异常处理
https://blog.csdn.net/yongyuai/article/details/79752608
7. java注解
https://blog.csdn.net/briblue/article/details/73824058
8. 类与对象
(1)object类的equal 和hashcode 方法重写,为什么?
https://blog.csdn.net/u013679744/article/details/57074669/
(2)内部类和静态内部类和匿名内部类,以及项目中的应用
https://www.jianshu.com/p/f0fdea957792
(3)String 为什么要设计成不可变的
https://blog.csdn.net/zhangjg_blog/article/details/18319521
https://blog.csdn.net/qingmengwuhen1/article/details/52175303
https://blog.csdn.net/topwqp/article/details/46380331
(4)String buffer 与string builder 的区别
(5)软引用、弱引用区别
强引用置为null,会不会被回收?
(6)volatile用法 volatile的原理
Android
1. 四大组件
(1)Activity的生命周期
下拉状态栏是不是影响activity的生命周期,
如果在onStop的时候做了网络请求,onResume的时候怎么恢复
前台切换到后台,然后再回到前台,Activity生命周期回调方法。弹出Dialog,生命值周期回调方法。
Activity 上有 Dialog 的时候按 home 键时的生命周期
横竖屏切换的时候,Activity 各种情况下的生命周期
(2)Activity的启动模式
(3)Services
(4)Broadcast
广播的使用方式,场景
(5)AlertDialog,popupWindow,Activity区别
(6)service和activity怎么进行数据交互
(7)fragment 各种情况下的生命周期
(8)fragment之间传递数据的方式?
(9)Application 和 Activity 的 context 对象的区别
(10)App中唤醒其他进程的实现方式
(11)AndroidManifest的作用与理解
2. UI
(1)View事件分发机制
https://www.cnblogs.com/Seanisme/articles/6180510.html
(2)自定义View
封装view的时候怎么知道view的大小
(3)view渲染
https://www.cnblogs.com/ldq2016/p/6668148.html
https://blog.csdn.net/zhangcanyan/article/details/52817989
(4)动态布局
https://blog.csdn.net/mottled233/article/details/52171904
(5)SurfView
https://blog.csdn.net/android_cmos/article/details/68955134
(6)图片加载原理
(7)listview图片加载错乱的原理和解决方案
(8)LinearLayout、RelativeLayout、FrameLayout的特性、使用场景
(9)如何实现Fragment的滑动
https://blog.csdn.net/daihuimaozideren/article/details/78293455
(10)ViewPager
(11)ListView重用的是什么
(12)计算一个view的嵌套层级
(13)recycleview listview 的区别,性能
https://blog.csdn.net/fanenqian/article/details/61191532
(14)ListView的优化
(15)RemoteView
(16)drawable和mipmap目录
https://www.jianshu.com/p/f7dc272b3469
https://blog.csdn.net/guolin_blog/article/details/50727753
3. IPC
(1)进程间通信方式
https://blog.csdn.net/u011240877/article/details/72863432
(2)Binder机制
(3)序列化
Android为什么引入Parcelable
有没有尝试简化Parcelable的使用
(4)AIDL机制
(5)Android进程分类
https://blog.csdn.net/lixiang_y/article/details/54889871
(6)Android 上的跨进程通信是如何工作的;
4. 数据存储
(1)Android中数据存储方式
(2)Android系统为什么会设计ContentProvider,进程共享和线程安全问题
(3)LRUCache原理
(4)数据库数据迁移问题
(5)Bundle 机制
(6)SharedPreferences
SP是进程同步的吗?有什么方法做到同步
5. 多线程
(1)线程死锁4个条件,怎么避免死锁
(2)为什么不能在子线程更新UI
(3)进程与线程 进程调度 进程状态
(4)开启线程的三种方式,run()和start()方法区别
(5)为什么要有线程,而不是仅仅用进程
(6)如何实现线程同步,如何保证线程安全
线程间 操作 List
(7)synchronize与Lock的原理,用法
synchronized与Lock的区别 synchronized与ReentrantLoc
static synchronized 方法的多线程访问和作用,同一个类里面两个synchronized方法,两个线程同时访问的问题
(8)线程如何关闭,以及如何防止线程的内存泄漏
(9)Java线程池
Android线程有没有上限,线程池的上限
(10)Android消息机制原理
(11)AsyncTask机制
https://blog.csdn.net/qq_25806863/article/details/72782050
(12)ThreadLocal
https://blog.csdn.net/u012216131/article/details/79717280
(13)volatile
https://blog.csdn.net/v123411739/article/details/79438066
(14)CAS
https://blog.csdn.net/v123411739/article/details/79561458
https://blog.csdn.net/heyutao007/article/details/19975665
6. 性能调优
(1)统计启动时长,标准
https://www.jianshu.com/p/c967653a9468
(2)如何保持应用的稳定性
(3)性能优化,怎么保证应用启动不卡顿
(4)怎么去除重复代码
(5)ANR怎么分析解决
http://yinger-fei.iteye.com/blog/1533788
(6)Android相关优化(如内存优化、网络优化、布局优化、电量优化、业务优化)
(7)App启动崩溃异常捕捉
(8)性能优化如何分析systrace
https://www.cnblogs.com/tianzhijiexian/p/4264794.html
7. 内存调优
(1)Android 内存详细分析
https://blog.csdn.net/hnulwt/article/details/44900811
Android中进程内存的分配,能不能自己分配定额内存
(2)内存泄漏的可能原因,OOM产生原因
https://blog.csdn.net/boyupeng/article/details/47726765
https://blog.csdn.net/hudfang/article/details/51781997
(3)用IDE如何分析内存泄漏
https://blog.csdn.net/qq_27650777/article/details/51984006
(4)Oom 是否可以try catch
https://blog.csdn.net/mr_liabill/article/details/50209617
https://blog.csdn.net/sinat_29912455/article/details/51125748
8. 网络通信
(1)TCP/UDP的区别
(2)Http/Https
如何验证证书的合法性,https中哪里用了对称加密,哪里用了非对称加密
Https请求慢的解决办法,DNS,携带数据,直接访问IP
(3)网络请求缓存处理,okhttp如何处理网络缓存的
(4)多线程断点续传原理
(5)socket
https://blog.csdn.net/tian779278804/article/details/50922354
(6)加密算法
9. 开源框架
(1)模块化实现(好处,原因)
(2)热修复,插件化
(3)MVP模式
(4)RxJava的功能与原理实现
(5)EventBus实现原理,EventBus作用,实现方式,代替EventBus的方式
(6)项目组件化的理解
10. 多媒体
(1)几大图片加载库的比较
https://www.cnblogs.com/fightingchendan/p/5972985.html
https://blog.csdn.net/lgzaaron/article/details/51958272
(2)图片加载框架Glide
https://blog.csdn.net/xiehuimx/article/details/52349317
glide 使用什么缓存?
https://blog.csdn.net/yulyu/article/details/55096713?fps=1&locationNum=2
https://www.jianshu.com/p/325bd2f56ca7
https://www.jianshu.com/p/a5f1d662e053
Glide 内存缓存如何控制大小?
(2)Bitmap 使用时候注意什么,bitmap如何处理大图,如何预防OOM
(3)Android中开启摄像头的主要步骤
(4)视频加密传输
11. Framework
(1)Android 的整体架构图
(2)Android启动过程
(3)App启动流程
(4)应用安装过程
(5)动态权限适配方案,权限组的概念
(6) Android Studio 的 build 按钮后发生了什么
(7)Dalvik、ART 虚拟机
(8)Android jni开发,jni如何调用java层代码
(9)差值器&估值器
数据结构/算法
1.系列目录
https://blog.csdn.net/l_215851356/article/details/77659462
2. 二叉树
(1)二叉树 深度遍历与广度遍历
(2)给出根节点和目标节点,找出从根节点到目标节点的路径
3. 排序
4.链表反转
5. 算法判断单链表成环与否
设计模式
1. 单例模式
https://blog.csdn.net/goodlixueyong/article/details/51935526