1.mvvm架构 相对mvp优点
2.crash率 常见的crash 业务需求的crash处理
3.java string Stringbuffer StringBuifder 区别
4.成员变量 、局部变量区别(局部变量需要默认值)这个问题答反了
5.数组跟链表的区别
6.hashmap原理 concorecttHashMap原理
7.activity启动模式简单介绍
8.布局优化 merge viewStub等
9.handler机制 looper初始化 message分发怎么区别handler、延迟消息
10.属性动画 以及跟不补间动画的区别
11.线程池的原理
1.一次完整的网络请求流程
2.不同版本HTTP的区别
3.ArrayList底层数据结构
4.链表的查找时间复杂度
5.HashMap底层数据结构
6.HashMap数据结构工作流程
7.HashMap查找的时间复杂度
8.HashMap解决Hash冲突
9.多线程的生命周期
10.volitile如何保证可见性
11.volitile如何保证有序性
12.线程池工作原理
13.okHttp的责任链模式
14.okHttp连接池复用原理
15.Glide的bitmap复用原理
16.Glide的三级缓存
17.Handler如何导致内存泄漏
18.Handler为何导致内存泄漏
19.Handler如何避免内存泄漏
20.常见的GCRoot
21.生产者消费者模式
22.ViewGroup的invalidate和requestLayout的区别
23.ViewModel如何和Activity生命周期进行绑定的
24.自定义View和自定义ViewGroup的区别
25.自定义View和自定义ViewGroup的方法区别
26.遍历二叉树
1.自我介绍
2.介绍自己的任务栈
3.组件化通信用了什么技术
4.Handler机制的理解
5.Handler匿名内部类AS警告内存泄漏的原因
6.Handler机制延时任务的执行方法
7.Kotlin的inline
8.Kotlin静态的原理
9.volitile的原理
10.DCL单例中volitile的作用
11.DCL单例中两次判空的原因
1.JAVA的多态
2.多态的作用
3.JVM内存分区
4.JVM垃圾回收算法
5.新生代老年代算法
6.性能优化
7.启动优化的数据分析
8.内存优化
9.内存泄漏
10.常见的内存泄漏场景
11.非静态内部类Handler持有外部类引用的解决方法
12.静态内部类以弱引用方式持有外部引用解决交互和内存泄漏
13.JAVA四种引用的区别
14.OOM处理方案
15.LeakCanary原理
16.okhttp连接与线程池
17.okhttp请求流程和同步异步区别
18.okHttp的责任链如何连起来
19.okhttp拦截器源码
20.HashMap源码
21.HashMap插入元素的原理
22.数组和链表的区别
23.sychronized升级过程
24.CAS作用
25.ConcurrentHashMap安全原理
26.乐观锁
27.线程池源码
28.线程池addWorker原理
29.类加载机制
30.热修复
31.热修复dex文件替换原理
32.Activity启动流程
33.Activity启动流程中的进程间通信
34.AMS
35.Zygote
36.自定义View
37.onMeasure测量原理(很复杂 仔细看)
38.从Activity的启动流程到View的绘制流程
39.对flutter的了解
40.设计模式
41.动态代理和静态代理的区别
42.设计模式六大原则
43.迪米特原则的意义
44.项目重构的思想
45.对AAC架构的理解
46.组件化实施方案
47.项目的版本控制如何实现
48.ARouter原理
49.一个未捕获的异常crash 怎么能让程序继续运行下去
1.线上BUG和行为的监控方案
2.ANR监控方案
3.Looper死循环不ANR原理
4.线上OOM监控方案
5.OOM可以捕获吗
6.Jetpack常用的内容
7.ViewModel的作用
8.ViewModel的生命周期
9.ViewModel保存在Application和ViewModelScope的区别
10.ViewModel如何保证Activity销毁后保存数据
11.Lifecycle的使用场景
12.自定义控件使用Lifecycle
13.Kotlin扩展函数适合使用场景
14.子线程Toast
15.子线程Dialog
16.子线程如何弹Dialog
17.广播和Service弹Dialog
18.Service使用场景
19.大文件下载然后加载的方案
20.Service启动方式
21.Service可以先start再bind或者先bind再start吗
22.多次调用bindService
23.Service后台常驻方案
24.Service保活方案
25.MVC,MVP,MVVM区别
26.databinding可能导致什么问题
27.自定义一个图片框架要考虑哪些内容
28.android在当前包名下的可用空间上限
29.LruCache原理
30.开发中常用的集合
31.线程安全的集合
32.synchronized可用范围
33.synchronized静态方法和普通方法的区别
34.同步方法继承
35.顺序请求多个接口方案
36.同时请求多个接口方案
37.线程池
38.系统提供的线程池
39.流式编程和响应式编程
40.Kotlin的Flow
41.SharedPreferences的apply和commit的区别
42.Parcelable和Serializable的区别
43.枚举和常量的性能区别
44.静态内部类和普通内部类的区别
45.Kotlin静态内部类
46.Kotlin 普通内部类和inner内部类
47.Kotlin直接声明变量 和 创建类再声明变量 的区别
48.ActivityA打开ActivityB,再从ActivityB返回到A的生命周期
49.ViewPager管理Fragment的生命周期
50.ViewPager预加载
51.ViewPager2和ViewPager懒加载的区别
52.ViewPager2懒加载机制
53.Flutter热更新方案
54.flutter_boost
55.Google Firebase
56.多语言切换可能有哪些问题
57.组件化动态依赖方案,如aar,jar包,在使用时下载对应的包