一面(视频面试 60min)
- Activity生命周期与启动模式(透明Activity情况)
- MVC、MVP、MVVM、Android官方架构组件
- IPC(进程间通信方式、Binder、AIDL、AIDL中如何使用非基本数据类型)
- Serializable与Parcelable序列化方式区别
- ContentProvider介绍及使用场景,authorities标签作用
- RxJava(map、flatMap实现原理;observeOn、subscribeOn多次调用线程控制结果)
- Android消息机制(Loop死循环与ANR、HandlerThread应用场景与实现)
- 如何获取父View宽高
- Java堆栈的区别
- SharePreferences#commit与apply方法区别
- 忘了
二面(视频面试 40min)
- 项目介绍(介绍了NAT打洞与UDP可靠传输的实现方式)
- Activity异常生命周期
- 布局优化标签作用
- SharePreferences介绍,apply异步储存是如何实现的
- GET与POST区别
- HTTP 常用状态码
- HTTPS中SSL/TLS四次握手过程
- ContentProvider 配置
- 算法:长度为n的数组循环右移k位,保证空间最优
- 忘了
三面(视频面试 30min)
1.算法:向有阈值限制的数组插入元素,当数组元素超过阈值限制,对数组进行扩容操作
2.IM协议选择(P2P还是服务器中转?IM协议选择?XMPP、MQTT、私有协议(TCP、UDP))
3.操作系统内存管理
总结:二挂头条,上次四面,这次三面,结果都一样,挂!失败率100%的面试经历,虽然伤心,但个人觉得每次被挂的最大原因莫过于算法的实现,自己对算法的思考、实现、优化欠缺的真的太多。好好刷LeetCode!好好撸代码!