一面
3月5号
19:20开始排队,20:00开始面试,20:25面试结束,感觉后面还有人。
没有自我介绍,直接开始问(当时感觉就没戏,有点像应付的样子,毕竟也有点晚了,但面试内容全是面经上的,不过有点紧张,有些没答出来)。
- 最满意的项目
- 在项目中做了什么
- 实习中做了什么
- 四大引用
- 用的图片缓存框架,自己实现的话用什么引用(脑子卡了,说的弱引用,结果直接翻车)
- Java泛型、应用场景、super与extends关键字
- Activity启动模式及应用、写微博界面用什么模式
- 线程的状态,如何中断线程
- Service启动方式,与Activity通信方式,还有其他方式吗?能在Service做耗时操作吗?
- 自定义View需要重写的方法及调用顺序、可以在这些方法里面创建对象吗?创建对象会怎么样(这里脑子卡了,之前看过内存抖动的定义,就说了内存抖动,下来想想不应该是卡顿吗)
- Binder应用场景
- http与https区别
- udp与tcp使用场景
关于该面试题的答案解析可上 GitHub自行查阅
3月7号
原本以为凉了,第二天就出去玩了,没想到第在路上二面面试官给我打电话了,但是当时在坐车,面试官打了三个电话都没接到(印象分-10000),第四个电话才接到,原本约当天中午12点,来不及就改到了7号上午9点,面试官还是很和蔼随和,体验挺好的。
8点55就进去了,56面试官也进入会议了,开始面试,9点35左右面试结束。
还是没有自我介绍,直接开始问。
- 你做过的项目
- 项目用的什么架构
- 说说MVP,有什么缺点?
- 你说到的P层臃肿怎么解决(这里胡说一通,然后说了个代理类)?
- MVP有什么改进?
- 说说MVVM的理解
- ViewModel的作用原理
- ViewModel与onSavedInstanceState区别(这里翻车,说的是一个手动恢复数据,一个自动恢复)
- ViewModel怎么保存数据的(ComponentActivity调用onDestory的时候保存???)
- LiveData原理
- LiveData怎么绑定的生命周期(LifeCycle???,原理这里只了解个大概,都没怎么答好)
- 说说了解的JetPack其他组件(说了Room)
- Room的注解是编译作用还是运行时作用
- 还有什么改进吗?(组件化)
- 组件化的思想(这里真的不了解,胡说一通)
- 性能优化(说了过度绘制,RecyclerView缓存以及DiffUtil)
- 内存方面的优化呢?
- Bitmap复用
- Bitmap复用会有大小限制吗(引导我说有)
- 你说的卡顿怎么回事(瞎说一顿)?
- 说说了解的第三方源码
- Okhttp怎么实现缓存的(说的拦截器,然后就改口不了解)
- Flutter的优劣势
- Flutter Android平台通道原理(Flutter在Android上本质就是一个View,其他原理不清楚)
- 额,做一道题吧
- 手写栈,尽可能多的实现功能(这里问题很大,考虑了泛型、线程安全、扩容)
这里实现栈的时候出了很多幺蛾子,构造函数使用了非静态常量报错,看了半天也没看出来,面试官说下去解决。使用的index与size会不会多余?(只需要size就行),还有泛型忘了写(面试官一句你的泛型呢?,人都傻了,int用习惯了)
- 数据扩容怎么实现(System的复制数组)
- 反问
最后一句面试过的话人力会给你联系或者公众号(暗示过不了)
反问的时候问了欠缺的地方,面试官说得非常到位,这些东西的原理不清楚!!!不清楚!!!不清楚!!!
没办法,太菜了,多看看原理吧。
面试经验分享
更多的面试专题分享可点击 GitHub自行查阅
我也算是一线公司都踩过点的Android 码农了,Google也踩过一次,现在就说说我自己的一些感受。在阿里的时候我作为面试官接触过几十个面试者,能左右我是不是通过这个人的,主要因素还是这个人对技术的热爱程度。
因为有这种极客精神,做任何技术上的事情都是时间上的问题,所以面试过程中要尽可能表现出对技术的热爱。
那除了这种因素外,我们怎么做才能更大概率的进入一线公司呢?
还有一个比较重要的因素就是知识的深度。我认为深度优于广度,广度通过看各种文章都能了解,但一旦碰到实际问题,这时候往往靠的是自己的知识深度。比如,Android程序员们很多人知道四大组件职责都是什么,还会些性能优化,但是如果不知道Framework层系统服务原理,就做不出插件化框架。
因为一线公司业务的复杂度也决定了业务的深度,如果没有较好的深度探究能力,是很难胜任的,所以知识的深度也很重要。极客精神加上某一领域知识的深度能力,就可以达到一线公司标准了。面试中非理性因素也有较大比重,但是这种东西是我们没办法掌控的,如果因为这种因素失败了,也没必要气馁。
我认为能力是和回报成正比的,就算此刻没发生,下一刻也会出现,只要掌握了我们该掌握的能力,总有一天会进入我们理想的公司。