1、viewModel怎么实现的?
ViewModel实现原理
2、ViewModel是不是一直存在内存中
ViewModel是Android Jetpack组件库中的一个组件,在Android MVVM模式中被广泛使用。
ViewModel的主要特性是以注重生命周期的方式存储和管理数据。
这种特性体现在ViewModel与Android组件(Activity、Fragment和Service)的生命周期相绑定,在组件的生命周期中ViewModel的数据会一直保存在内存中,即便是在系统配置变更时也会存在
3、guideLine为什么不再布局中显示?
因为默认是gone
4、Android中线程挂了进程会崩溃吗
结论:线程崩溃不一定导致进程崩溃。
线程崩溃的本质就是内存出错。而内存出错有时不会引起其他线程出错的,因为崩溃的线程,也就是出错的内存有时侯没有被其他线程访问,也就不会产生问题,但有时候会打乱其他线程的内存。
5、Rxjava用了那些操作符
RXJava操作符
6、数据变更UI自动更新怎么实现的,用得dataBinding嘛?
对
dataBinding
7、有网状态下的缓存和无网状态下的缓存一样吗?
无网络环境下,咱们仅仅能读取缓存文件,为了应用有东西显示。没有什么过时之说了。
WiFi网络环境下。缓存时间可以设置短一点,一是网速较快,而是流量不要钱。
3G流量环境下,缓存时间可以设置长一点,节省流量,就是节省金钱,而且用户体验也更好。
8、livedata粘性事件?
简单过一遍:livedata
9、jetpack还用过那些?
jetpack简单使用
10、navigation用来做什么?
- Navigation 是 Android Jetpack 组件包 中的重要一员,借助于 Single Activity 和 多个Fragment 碎片,优化 Android Activity 启动的开销和简化 Activity 之间的数据通信问题。
- 内置支持普通 Fragment、Activity 和 DialogFragment 组件的跳转,也就是所有 Dialog 或PopupWindow 都建议使用 DialogFragment 实现,这样可以涵盖所有常用的跳转场景,统一返回栈的管理。
- 另外,基于 Fragment 实现可以做到状态存储和恢复。
11、activity依次abcdb ,b为singletask,acd为标准模式,back三次?
abcdb以后,栈内只剩下ab,back三次,b出栈,a出栈,返回桌面
12、java状态机的理解?
简单看:状态机
13、堆内存溢出,栈溢出相同吗?哪些场景会发生栈溢出?
一、 栈溢出(StackOverflowError)
栈是线程私有的,他的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作数栈,动态链接,方法出口灯信息。局部变量表又包含基本数据类型,对象引用类型(局部变量表编译器完成,运行期间不会变化)
所以我们可以理解为栈溢出就是方法执行是创建的栈帧超过了栈的深度。那么最有可能的就是方法递归调用产生这种结果。
二、 堆溢出(OutOfMemoryError:java heap space)
heap space表示堆空间,堆中主要存储的是对象。如果不断的new对象则会导致堆中的空间溢出