carvergit

距离上次跳槽已经过了3年多,突然看到字节的HR来捞。想着自己好久没面了,就打算去试试看。

0. 准备

视频面试,不用去现场真的太赞了。由于项目比较忙,自己又不是特别想跳槽,所以没怎么准备。面试当天看了一篇面经找找感觉。

1. 自我介绍

面试前我以为自己多年老油条是不会紧张的,但是打开了视频开始面试还是难免紧张了起来,感觉脑子都不灵活了。自我介绍又没怎么打过腹稿,导致开始就有点卡壳。不过自己的主要经历是讲出来了。

2. 面试题

接下来就直接开始了,先是问了简历上做的东西,感觉自己答的没什么毛病。下面分享下问的问题和自己的回答。

1.View的事件分发(具体详细)

事件分发我是有跟过源码的,一开始就想从InputMethodService讲起来突出自己。但讲的时候发现很多细节都忘了,只好匆匆介绍起了dispatch、intercept、onTouch这些。

2.内存问题一般如何处理?

讲了下内存泄漏、内存溢出的排查和修复。

3.死锁导致的ANR,如何排查?

这个问题我真的一下子没有get到,就介绍了下ANR。现在我回想过来,应该是想考察我是不是分析过traces.txt文件?从trace文件里可以看出线程的状态,如果死锁了可以看到主线程是block的。

4.插件资源加载如何热修复?

讲了下插件资源加载遇到的ID冲突如何解决。
这里我估计漏了答反射Asset相关的点了,因为他一直问还有什么。我觉得插件反射Asset应该是常识吧,不应该是要考这个。。。

5.讲讲Binder?

回答了一次拷贝的原理。

自己回答的有点乱,这就是没有准备的下场,明明脑子里架构图都出来了,但是表述的时候卡壳了。

6.ConstraintLayout 如何减少布局层级的?

答:通过各个View之间的约束关系来做,不像LinearLayout这种定死了布局方向。
面试官好像不是很满意。

7.Android如何加载长图?

我回答是:只加载需要显示的部分,剩余的部分按需加载。
面试官显然不满意,想要问细节。
我不会。。。
这个在博客中看到过,系统有提供相关类来处理,但是我确实没有实践过。没有答好。

8.算法

https://www.nowcoder.com/questionTerminal/2569018b80044c4fab95b4d6752fbccf?
算法是我的弱项,又好久没有刷题了,这道小算法题愣是卡了我好久。有点尴尬

3. 总结与反思

很多基础的知识点都没有复习,没有在脑子里过一遍,导致面试的时候表述不明确。很多细节也是忘记了,不敢瞎答。

算法还是要加强,多做题,主要是坚持,保留这个习惯才好。

面试考察的是平时的积累,有些问题是我平时处理以及解决过的,但面试过程中却不能很好的把自己的解决方案表达出来。看来我平时的总结还是不够,遇到问题解决后没有再好好归纳,很快就忘记了。以后要多多加强,分析过的问题最好是整理输出博客,并时时温习。

相关文章: