分享一份朋友面试过的公司经历
猿辅导
一面
主要聊了下面几个方面
- 热修复,主要说了ClassLoader的方式和Rubost的插装方式,重点介绍了Rubost的原理。
- 实现直播礼物的一些技术选型,和播放带有alpha通道MP4的解决方案
- 怎么实现字节码注入
- 抖音组件的探索,SPI到字节码注入,优缺点。
- 接下来就是两道算法题
- String字符串的数字相加
- 使用三个线程顺序打印有序的数组
- 提问环节
二面
- 包体积优化:静态Lint,Proguard,AndResGuard和删除R.java中的所有字段,删除access$方法,在gradle的transform阶段将压缩png和jpeg,使用google开源的redex方案,每种方案的原理以及优缺点
- MVVM-livedata的实现原理
- 属性动画的原理,这里没看过,不太清楚
- Kotlin写一个let的扩展函数,大体写了一下代码。
- 算法,可能是我写的太慢了,所以就只有一道
- 给定一个有序的数组和目标数,找出与目标数最近接的index,要求复杂度是log(n)的时间复杂度
三面
三面就比较轻松了,面试官一直乐呵呵的,又问了一下alpha视频的解决方案,然后聊了聊为什么要离开这么火的项目,问了问我的经历之类的,最后写了两道算法题
二叉树的深度和广度,要求一次遍历
给定一个二叉树和一个目标数,在二叉树中是否存在一条路径的所有节点的和与目标数是相同的case,并且打印。
总结
效率并不是很高,而且并不主动,可能是跟我要的薪水太高有关系,后面通过询问才知道,技术面试是通过了,可能字节跳动本来薪水就很高,我再跳过来,猿辅导考虑到我的工作年限和年龄,会倒挂一大批人,所以只能平薪过来,而且这样知道我肯定不会来,就没主动跟我说。
整个面试环节总体来说还可以,但是就是效率不高,也可能是我运气不好,我是4:10到猿辅导的,然后在前台等了20所分钟,hr才来,说了刚才在电话会议耽误了,这个理解,然后等待面试又等了10多分钟,来了server的面试童鞋,写了道算法题,重新调整到Android面试,又等了15分钟,真正Android面试开始在5:10左右,面试完成后基本到了8:30了。
对自己的表现基本满意,就是好久不手写代码,有点生疏,写的比较慢,大多数问题和答案都得到了面试的认可,对一些知识点没有复习到,其实我是这样认为的,并不是所有的问题或者知识都需要知道,你只需要有1~2个方面了解的很透彻,得到面试官的认可就行。
抖音
一面
- 在抖音上显示自己做的功能,框架的搭建,实现原理,所做的优化点等。
- 组件化的实现,为什么做组件化,不同实现的优缺点。
- hashmap的实现原理
- view的优化,减少层级,异步加载,x2c框架引入,优缺点,textview的优化。
- mp4播放alpha视频实现的原理
- 一面面试官大概聊了1个小时左右,没让我写算法,细究原理和细节,非常仔细。
二面
- 冷启优化的一些方案。
- 数据驱动业务的理解,怎么做,和pm产生分歧怎么解决。
- 我所有做的优化的收益是什么,有什么数据支撑。
- 事件分发机制,举了一个具体的例子来解决。
- http的一些问题,1.1和2.0区别,心跳机制,https怎么建立链接,怎么进行数据加密等。
- 为什么离开,职业发展,诉求等。
- 聊了大概一个小时,面试官的思路相对独特,不是为做技术而做技术,技术始终要服务于业务,我非常认可。
总结
趣头条北京位于海淀,位置不靠近地铁,需要步行一段时间,不过效率挺高的,在面试完的第二天就给我发offer了,面试流程也相对较少。对趣头条的营收模式看的不是很清楚,类似发钱看新闻,但是现在头条也再做这个,趣头条能够搞得过头条是个问题,如果没有增长点,那后期的转型是什么(我瞎操心啥)?总体来说体验还是不错的,hr也很真诚,多次沟通,虽然最后我没有去,感兴趣的同学可以去看看。
瓜子二手车
瓜子二手车真的是太远了,从海淀到工作地方将近花费了2个小时,而且还不在地铁附近,还需要坐公交。
一面
- 聊了一下项目中做过的东西,字节码注入相关知识,transform优化,mp4礼物实现等
- 从桌面点击icon图标开始,整个启动activity的启动过程
- Binder的实现原理
- 插件化的原理,以及hook点,大概有两个,可以网上搜索一下
- hashmap的实现原理
- 单例的实现,sychrnized的实现原理,以及双锁不加violate,会不会有线程安全问题
- 二叉树,读取每一层最右边的节点
二面
- 聊聊大概履历,以及在华为、字节跳动都做了什么,为什么要离开。
- 职业规划,怎么带领团队
- 代码设计的基础原则,以及用UML画出工厂模式
- 将两个有序的链表合并成一个有序的链表,递归和循环两中方式
- 时间分发机制,并且需要从Android的sensor开始到应用层,我只知道从Activity开始的流程。
- 聊操作系统Unix,汗颜,我知之甚少。
- 对新技术的看法(flutter),瓜子二手车也已经开始在项目中使用fultter相关技术
三面(总监)
- 自我介绍,为什么要离开
- 线程安全的问题,sychronized和viloated的使用
- 实现一个CAS(乐观锁)的方法
H- ashMap的实现原理,怎么优化内存占用,优化resize的过程,这个是开放的问题
四面(VP?)
- 自我介绍,在抖音做了什么
- 在抖音做的比较好的两件事情
- 设计一个美团的框架,组件化
总结
瓜子二手车是众多二手车中做的还算比较好的公司,现在像优信、人人二手车好像都不是很好了,就是太远了,公司附近也没有地铁站,就算是公交站还需要走2公里,但是面试官感觉还是比较有水平的,后期的hr跟我谈也是诚意满满,整个团队在我来看,还是一个想做事情的态度。总体来说hr还是非常真诚的,想去的朋友可以考虑考虑。