2. 项目介绍。用到了什么技术栈?
-
ViewModel 的作用是什么?
-
你在 Fragment 之间传递数据的时候是怎么做的?
-
为什么不用一个全局的静态变量呢?
-
你有用 LiveData 自己封装了一个事件总线,讲一讲实现?
-
对 Retrofit 的基本结构或者源代码了解吗?
-
Retrofit 有一个动态代理的过程,有听说过吗?
3. Kotlin 和 Java 都是在做这个 Android 项目中学习的吗?
- 在 Kotlin 和 Java 中,实例的初始化顺序(成员变量、静态变量、构造函数等)分别是怎样的?
4. Kotlin 的作用域函数(let、apply 等)有了解过吗?
- 你是怎么理解的?具体来说它们有些是带 Receiver 的、有些是带参数的,你在使用过程中是怎么选择的呢?
5. OOP 中的设计模式有了解过吗?
-
Java 中的单例模式分为那些呢?
-
Kotlin 中的 object 相当于 Java 中的哪一种单例模式?
-
饿汉式是怎么做到线程安全的?
-
类加载器又是在什么时候去加载这个类呢?
-
解释一下饿汉式中存在的性能问题?
-
在 Kotlin 中如何实现懒汉式单例?
-
Java 中 DCL 单例模式中双重校验的意义?
6. Jetpack 的其他组件有了解过吗?
-
Room 使用的基本流程了解吗?
-
SQLite 平常你是怎么用的呢?
7. 算法
LeetCode 101. 对称二叉树
8. 反问
-
部门业务?
-
是纯原生开发吗?
-
面试评价?
-
还有什么需要学习的?
-
面试官反问:对工作地点有要求吗?
-
多久能收到结果通知?
二面结束之后等了大概一个小时多,HR 通知第二天三面。
三面(1 月 15 日,40 min)
1. 自我介绍 & 项目介绍
-
项目是你自己在做吗?
-
介绍一下项目的模块和功能?
-
项目中用到的数据都是怎么获取到的?