看着我同学最近也在到处投简历,我想着我也投一下看看行情,于是在2022-02-28号,我向B站投出了第一封简历,说实话当初只是想练练手,没想到最后接了B站的offer,也是造化弄人了
技术面,45min左右,基本围绕你简历上写的亮点和你的工作经历展开
单例模式,策略模式,责任链模式(问了一下使用场景),工厂模式等
Android中的观察者模式,适配器模式等
camera2,自定义照片裁剪View
回答了一些Path绘制以及触摸事件的处理
属性动画,ObjectAnimator
ConcurrentHashMap
线程安全的原理 1.8之前用的分段式锁,1.8之后用的synchronized
,至于具体的细节没有答上来,因为确实也没看过这边源码
这个我当时回答的是打log,因为项目中用到jni的地方确实不多,当然jni也是可以断点调试的
这个我当时只回答了mmap,稍微聊了一下mmap原理和binder性能对比,后来复盘想起来项目中用到的Broadcast和aidl binder通信都没有回答
onUrlLoading拦截Schema
注册js方法(addJavascriptInterface)
aapt -> class -> dex -> 签名
ASM插桩,字节码操作
因为我之前做过一个性能监控库,cpu和mem使用TOP命令解析,Anr通过给MainLooper
设置Printer
WeakReference + ReferenceQueue
,加了一些改进点:new一个弱引用的Object,等这个Object确认被回收后再确认Activity是否正常被回收
稍微谈了一下看法,是否在项目中用过
LeetCode 14题,easy难度:leetcode-cn.com/problems/lo…
一面结束后5min左右,B站HR就给我打电话过来约了二面 二面也是技术面,20min左右,因为是晚上8点面的,估计人家急着想下班(笑)
基于Mockito和Robolectric:
开发规范参考了阿里的Java规范和Android规范,选取了一些比较重要的条例和一些自己长时间开发的经验做成了一篇文档
感觉这里没答好,有点答非所问的意思,我就说了说目前处理bug的一个流程,没有谈到怎么解决一个bug
我们用的是神策第三方服务
这部分同一面LeakCanary原理
是的,当时是想要做一个IM应用
目前没有
一个Activity创建是:onCreate -> onStart -> onResume
(之后便在屏幕上显示了) 假设从A Activity跳转到B Activity:A.onPause -> B.onCreate -> B.onStart -> B.onResume -> A.onStop
从B返回到A:B.onPause -> A.onRestart -> A.onResume -> B.onStop -> B.onDestory
后台任务,比如说后台播放音乐等,这里提了一下IntentService是开了一个子线程的
startService <---> stopService
bindService <---> unbindService
清理资源(字体、图片、代码等)
二面结束后过了2-3天,HR发微信过来恭喜我进入下一轮面试,我问她接下来是还有三面和HR面吗,她回答我说后面就直接是HR面了,说实话我还是挺惊讶的 HR面15min左右,大概就问了一下,为什么要从上家公司离职,我们是一个新部门,处于项目初期,有什么看法之类的,然后问了一下目前的薪资和期望薪资,over~
说实话感觉这次面试太简单了,有点白瞎了我准备了那么多,还做了查漏补缺 ㄟ( ▔, ▔ )ㄏ ,最后祝大家都能找到心仪的工作 (๑•̀ㅂ•́)و✧
Copyright© 2013-2019