持续了大半个月的面试终于结束了,年后回来,从2月9号到3月1号,一直陆陆续续有面试邀约,
不得不说,一边在职承受工作压力,另一边还要承受面试找工作压力,双重压力下,多多少少有点难顶,
但是,收获offer还是比较满意的,拿下了网易、小米的offer,
着实有点可惜的是字节跳动,倒在了三面,只能说自己还是太菜,以后还需要继续努力。
这期间只投递了互联网中大厂,面试并不多,以下是我在这大半个月以来的面试经历,发出来总结一波,也供大家参考参考!
以下面试均为Android开发——社招岗。
网易 (已offer)
整体难度不大,都是常规题。
一面(90min)
1、自我介绍
2、MVP和MVVM的区别
3、Activity被强杀了ViewModel会不会被强杀
4、ViewModel能恢复数据的原理是什么
5、从源码上说说View的绘制流程(绘制起点到三大流程的)
6、如何通过自定义View实现一个类似流式布局,讲思路
7、invalidate和postInvalidate区别
8、说说LiveData源码
9、创建线程的几种方式
10、重写Thread类和重写Runnable的区别
11、线程之间的通信方式有哪些
12、说说Handler的源码
13、volatile的作用
14、Synchronized和Lock区别
15、Synchronized的底层实现原理是什么
16、Synchronized在java 6后具体做了哪些优化
17、Activity的四种启动模式
18、Server的启动方式,各个方式有什么特点
19、广播类型,具体描述一下
20、设计模式了解哪些,挑一个熟悉的讲一讲
21、为什么要跳槽?
算法:删除排序链表的重复元素
二面(50min)
1、自我介绍
2、介绍一下项目中遇到的困难
3、说说一个音视频文件从打开到能播放的流程
4、怎么优化一个Mp4格式的视频的起播速度
5、软解和硬解的区别
6、组件化的原理
7、从源码上讲讲View的绘制流程
8、如何实现一个可以换行的View
9、View的分发流程
10、如何实现一个有下拉刷新功能的View
11、Activity和Fragment的生命周期
12、Service的生命周期
算法:判断一个链表是否有环
三面(40min)
1、自我介绍
2、公司的产品有哪些
3、介绍下协程以及它的原理
4、协程怎么取消
5、了解直播框架吗
6、直播的推流和拉流的流程是怎样的
7、H246和H265的区别</