4. 趣头条

一面

  • 在抖音上显示自己做的功能,框架的搭建,实现原理,所做的优化点等。
  • 组件化的实现,为什么做组件化,不同实现的优缺点。
  • hashmap的实现原理
  • view的优化,减少层级,异步加载,x2c框架引入,优缺点,textview的优化。
  • mp4播放alpha视频实现的原理
  • 一面面试官大概聊了1个小时左右,没让我写算法,细究原理和细节,非常仔细。

二面

  • 冷启优化的一些方案。
  • 数据驱动业务的理解,怎么做,和pm产生分歧怎么解决。
  • 我所有做的优化的收益是什么,有什么数据支撑。
  • 事件分发机制,举了一个具体的例子来解决。
  • http的一些问题,1.1和2.0区别,心跳机制,https怎么建立链接,怎么进行数据加密等。
  • 为什么离开抖音,职业发展,诉求等。

聊了大概一个小时,面试官的思路相对独特,不是为做技术而做技术,技术始终要服务于业务,我非常认可。

总结

趣头条北京位于海淀,位置不靠近地铁,需要步行一段时间,不过效率挺高的,在面试完的第二天就给我发offer了,面试流程也相对较少。对趣头条的营收模式看的不是很清楚,类似发钱看新闻,但是现在头条也再做这个,趣头条能够搞得过头条是个问题,如果没有增长点,那后期的转型是什么(我瞎操心啥)?总体来说体验还是不错的,hr也很真诚,多次沟通,虽然最后我没有去,感兴趣的同学可以去看看。


5. 瓜子二手车

瓜子二手车真的是太远了,从海淀到工作地方将近花费了2个小时,而且还不在地铁附近,还需要坐公交。

一面

  • 聊了一下项目中做过的东西,字节码注入相关知识,transform优化,mp4礼物实现等
  • 从桌面点击icon图标开始,整个启动activity的启动过程
  • Binder的实现原理
  • 插件化的原理,以及hook点,大概有两个,可以网上搜索一下
  • hashmap的实现原理
  • 单例的实现,sychrnized的实现原理,以及双锁不加violate,会不会有线程安全问题
  • 二叉树,读取每一层最右边的节点

二面

  • 聊聊大概履历,以及在华为、字节跳动都做了什么,为什么要离开。
  • 职业规划,怎么带领团队
  • 代码设计的基础原则,以及用UML画出工厂模式
  • 将两个有序的链表合并成一个有序的链表,递归和循环两中方式
  • 时间分发机制,并且需要从Android的sensor开始到应用层,我只知道从Activity开始的流程。
  • 聊操作系统Unix,汗颜,我知之甚少。
  • 对新技术的看法(flutter),瓜子二手车也已经开始在项目中使用fultter相关技术

三面(总监)

  • 自我介绍,为什么要离开抖音
  • 线程安全的问题,sychronized和viloated的使用
  • 实现一个CAS(乐观锁)的方法
  • HashMap的实现原理,怎么优化内存占用,优化resize的过程,这个是开放的问题

四面(VP?)

  • 自我介绍,在抖音做了什么
  • 在抖音做的比较好的两件事情
  • 设计一个美团的框架,组件化

总结

瓜子二手车是众多二手车中做的还算比较好的公司,现在像优信、人人二手车好像都不是很好了,就是太远了,公司附近也没有地铁站,就算是公交站还需要走2公里,但是面试官感觉还是比较有水平的,后期的hr跟我谈也是诚意满满,整个团队在我来看,还是一个想做事情的态度。总体来说hr还是非常真诚的,想去的朋友可以考虑考虑。


6. 伴鱼

笔试

  • 双锁单例,为什么要价violate
  • 内部类访问外部类
  • 函数值传递的一些题
  • 子类继承父类,个字都有静态变量、静态代码块、构造函数,执行的顺序
  • int数组,除了一个数字外,其他数字都出现两次,找出这个只出现一次的数字

一面

  • 图片压缩原理,以及在transform阶段进行的必要性,讨论的还挺激烈
  • 内部类引用外部函数的参数,为什么要final定义,值传递
  • 判断一个应用是否切到后台
  • 组件化的探讨,假设场景,怎么处理
  • 插件化的实现方式,以及对相应的场景进行讨论

二面

伴鱼的架构师

  • 一个疑难杂症,也是自定义插件,讨论是否有更好的方式,最后结果是,他想了一个比较巧妙的方式,没有实践过,但是告诉我可以,保留自己的意见。
  • 字节码相关知识,ASM以及MD5的实现原理,png的压缩原理,这里比较乱,就是说到哪问道哪,比较发散。
  • 对成为架构师的几点看法

三面

  • mp4实现alpha通道的原理,优缺点,收益是什么
  • m*n的二维数组,做(0,0)出发,可以上下左右走,0为畅通,1为阻塞,目标位置(k,j),问是否能到达这个位置,类似迷宫的算法

总结

感觉伴鱼的面试目的是问倒你,很多次讨论问题,我说你有什么看法或者正确答案的时候,面试官就让我回去自己上网搜一下,或者给出的方案,经不起我的推敲,我问上两三个问题,面试官反而有点语塞,感觉很奇怪。不过公司有自己的考量,最后给的薪资不是很满意,就没有去,二面面试官给我的体验还是非常不错的,考虑全面,而且也有深度。


7. 最右

笔试题

Android中的引用关系

自定义view步骤

activity生命周期

一面

  • 介绍最右的现状
  • 常用的播放器,以及优缺点
  • opengl的绘制流程
  • 音视频编解码的流程

二面

  • 在抖音做的工作
  • 性能优化,包体积优化,冷启优化,卡顿优化的一些实现方案
  • mvc mvp mvvm的区别,以及自己实现的轻量级mvvm的原理
  • 编解码的相关知识
  • ijkplayer的优缺点,以及是否看过相关源码
  • flutter的探讨

总结

总体来说面试流程中规中矩,但是面试官的问题并不是很全面,更加关心的是自己的关心的领域,对于我提出的问题(大前端和flutter),见解也仅仅是需要对新技术保持一定的敏感度,后面hr让我去跟cto再谈一轮,因为考虑到各个方面的因素,就直接拒绝了。


8. BIGO

BIGO是YY旗下的一个公司,目前刚刚收购了一个海外的直播产品,而且将来会把业务放到北京,还是想做一些事情,员工福利也是不错的。由于现在主要的人员还是在广东,前两面都是电话面试

一面

  • 多线程怎么保证线程安全,violated、sychronized、reenterLock,这三个锁的原理以及区别,JVM是怎样实现sychronized线程安全的。
  • HashMap的实现原理,put()原理。hash冲突,resize,1.8的改动,什么是红黑树,优点。
  • ui优化,主要从检测和优化两个部分说明,优化又分为通用的优化,和改变绘制流程的优化。
  • jvm的介绍,内存介绍,gc等
  • binder机制

二面

  • hashmap是否线程安全,concurenthashmap实现原理,1.8之后有什么改变
  • 播放透明的mp4的原理
  • 冷启优化和ui卡顿的监测和优化
  • thinker实现插件化的原理,我们使用什么什么实现热更新,热更新的通用方案,以及优缺点

三面

  • 介绍自己之前的工作经历,在华为做了什么,为什么离开华为,在抖音都做了什么工作
  • 实现mp4播放alpha视频的原理
  • 是否使用过kotlin,kotlin的一些特性
  • 内存泄漏和oom怎么产生的,内存泄漏的监控,leakcanery的实现原理
  • 看过哪些第三方框架的源码,具体的实现原理。retrofit、okhttp和eventbus等

总结

BIGO一二面还是偏基础的知识,并没有很深或者很偏的问题,三面面试官是之前腾讯的大佬,面试更多的我做过的项目讨论和架构的问题,以及其他方面的一些问题,整体感觉还是比较好的,hr小姐姐是广东人,说话的声音很好听,也很真诚。


9. 音娱科技

主要做的日本的直播产品,公司并不大,创始人好像也是头条出来的,各种福利制度和头条进本类似。

一面

  • activity生命周期 以及各个函数的含义
  • activity task的四种类型
  • fragment的生命周期
  • 启动server的两种方式
  • intent传输数据的大小限制
  • binder的原理
  • activity的启动流程
  • hashmap实现原理,1.8的改动,红黑树概念
  • 合并两个有序的链表

二面

  • 为什么离开抖音
  • 组件化实现方案 spi的缺点,怎么使用字节码注入
  • Dex的组成,为什么每个dex会有65536的限制
  • 还有好多,时间太长记不太清楚了

总结

面试技术应该是通过了,最终卡在薪资,可能我要的太高,公司可能觉得依照我现在背景,性价比不高,就没谈下去,后面跟其他公司聊的时候,又了解了一些这个公司的情况,据说年终奖特别少,很多人在年后都跳槽了。


10. 小红书

一面

  • Activity的生命周期、fragment的生命周期,onRestart()什么时候调用
  • service的两种启动方式,service的生命周期
  • binder机制
  • 进程保活:1.防止进程被杀 2.杀死后再拉起,详细的答案网上搜一下,这里就不列举出来了
  • app的包体积优化,lint、proguard、andresguard原理,字节码注入,删除R.java的变量,删除access$001方法,压缩图片资源和使用redex等。

二面

  • 自我介绍
  • 对JNI和C++了解吗?基本不了解,就略过了
  • Activity的launchMode,每个Mode的含义,Activity的启动流程
  • 怎么样实现MP4播放alpha的视频,编解码的一些流程,NV20、YUV、RGB一些概念,SurfaceView和TextureSurfaceView的区别
  • 组件化的实现,都有什么技术方案,优缺点
  • 使用数组实现一个队列,有void add(int val)和void pop()两个函数,而且需要考虑扩容

三面(业务线负责人)

  • 介绍自己,介绍在抖音做过的事情
  • 哪两件事情做得最有成就感
  • 怎样重构代码,基本的6大原则,详细讨论每个原则的含义,使用过的设计模式
  • 假定场景,接口定义的有缺陷,第二版需要修改,是增加还是直接修改,以及还有没有其他的方案,怎么去做,为什么,这个是开放的题,结合设计原则,以及真实的情况和自己的一些例子说明即可

四面(Android负责人)

  • 介绍自己,为什么离开抖音
  • mp4播放alpha视频的实现方案,详细解说
  • 跨部门合作,具体的一个例子,怎么去沟通,假设一个例子,用最恰当的方式去沟通。
  • 怎么向上管理以及向下管理

五面(类似VP级别)

  • 对技术选型的看法,flutter、c++、java、kotlin,核心是解决问题
  • 是否会使用kotlin,优势,以及在项目中真正带来的收益
  • 组件化,依赖版本号不同的解决办法
  • 插件化,一些实际问题的,具体是什么记不太清楚了

总结

小红书的装修真是豪,办公环境特别棒,但是面试流程有点多,足足面了5轮,不过总体来说技术还是很不错的,不论是广度还是深度,尤其最后一面,专门从上海飞来面试,十分荣幸,从这点就能看出公司对人才的重视程度,是一个值得加入的公司,hr小姐姐人美也真诚。


11. 饿了吗

一面

  • 包体积优化,Lint、proguard、andResGuard的原理,以及抖音做的一些包体积优化的方案
  • 线程和线程池的讨论,为什么要用线程池,线程池各个参数的含义,如果队列满了会发生什么,为什么线程池的数量是cpu核数+1
  • 好吧,记不起来了

二面

  • 自我介绍
  • 线程安全的方式,sychronized和violated的区别
  • 怎么自定义Transform、自定义Task,Task之间怎么依赖,大致顺序是什么,增量编译的概念,异步加快文件的读取,ASM接口的使用
  • cookie、session、token的含义和区别,这里我确实不熟悉,就直接说我不太清楚了。

三面

  • 自我介绍
  • 在抖音都做过什么事情,相关的几个方向深入讨论一下
  • 对于架构的思考,怎样设计一个好的架构,6大设计原则,分别说明一下
  • 用过什么设计模式,为什么要用设计模式,对于设计模式的思考
  • 怎样提高开发效率,较少沟通成本,实例说明下
  • 为什么要引入kotlin,优缺点
  • 以后的规划

四面(交叉面)

  • 介绍自己,为什么离开抖音
  • 音视频的相关知识,NV20,YUV,RGB的关系,为什么mp4的压缩率比webp的动画要高,编解码的流程,通用的编码格式,软硬解的区别。
  • View的绘制流程,硬件加速的原理和软件绘制的区别,以及相关的view的优化

总结

总体来说面试体验还是不错的,三面面试官对于职业发展和新技术的见解都是非常深刻,也给与了我很多建议。


12. 美菜网

一面

  • 动画实现的方式,帧动画和属性动画的实现原理
  • 一张图片加载到手机内存中真正的大小是怎么计算的
  • OOM产生的原理,内存泄漏是由于什么引起的,GCRoot有哪几种类型,JVM等
  • 一个二分查找的变形题,具体的题目记不清楚了
  • 为什么要做组件化,组件化的实现方案都有什么,优缺点
  • Activity的启动流程
  • View的绘制流程,从VSYNC信号开始

二面

  • 性能优化,包体积优化,R.java优化,access$xx方法优化,资源优化原理
  • MVVM是什么,我自己做的轻量级的MVVM的实现方式,优点是什么
  • 看过什么第三方的源码,retrofit原理,动态代理和静态代理的区别,是否使用反射,okhttp的原理,Http和Https的区别,Https的socket security layer的握手,EventBus的原理,3.0的区别,APT的使用以及怎样处理字节码(ASM、javaassit、BECEL等)

总结

美菜网真的是好乱呀,面试人感觉有几十个,现在美菜网扩张这么厉害吗?我面试的时候我旁边的哥们也在面试,真的是很嘈杂,不过面试官的基础还不错,看过一些源码,但是并没有问到什么特别好的点,对整个新技术的见解和对我的建议(一般会问面试官一些对于新技术例如flutter看法,和对我的一些建议)感觉不是很深,跟hr谈完后就离开了。


13. 爱奇艺

一面

  • 从Activity A跳到Activity B的生命周期的调用过程,如果是异步进程呢
  • 冷起优化,systrace怎么使用,实现原理
  • ANR是什么,怎么上报ANR,有些手机拿不出,有些手机拿不出anr/traces.txt,怎么查找ANR问题
  • 插件化的原理,Activity的启动流程,hook点
  • 一个类,内部有一个链表的数据结构,实现void add(Node n)和void remove(int index)的函数

二面

  • 介绍工作经验,为什么离开抖音
  • HashMap的实现原理
  • 在抖音做的工作,主要说了ui优化和冷起优化两个部分,扩展开来,讨论了很多相关的知识点
  • 手写消费者生产者模型的代码

总结

这次面试的是奇异果,并不是爱奇艺app,因为我还是想做app,二面之后,我就跟面试官说了我的想法,就没必要聊下去了,就直接走了。


14. 快手

一面

  • handler介绍,为什么阻塞不会造成anr,屏障消息,产生内存泄露原因,handler内存泄露的引用链
  • 事件拦截机制,view的绘制流程
  • android的系统渲染原理,renderthread的解释,三缓冲机制播放透明mp4的原理,surfaceview和textureview的区别
  • opengl的绘制流程,texturesurface是什么,顶点着色器和片元着色器各自作用,VOB是什么
  • 一个无序的int数组,给一个target数字,找出数组中两个数字相加为target,并输出坐标

二面

二面面试官是facebook回来的,面试风格的确和之前的面试官讨论不一样

总结

最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

相信它会给大家带来很多收获:

上述【高清技术脑图】以及【配套的面试真题PDF】可以点击我的GitHub免费获取

本文在开源项目:[https://github.com]中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

ps://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

啃完这些资料,我拿到了腾讯,爱奇艺,Kotlin从入门到进阶实战相关推荐

  1. 爱奇艺技术沙龙盘点(内含资料分享)

    第一期   移动开发从组件化到Web化 坐标:上海 简介: 随着移动互联网业务的不断增长和移动客户端技术发展不断深入,模块化.组件化及动态化的架构设计在帮助开发者降低模块耦合.提升团队合作效率和灵活应 ...

  2. 2021-08-22爱奇艺后端笔试【完犊子了-选择20题+编程4道】

    一.选择题 略 二.编程题 2.1 SQL查询女生最多的前三科目,以及人数 # Student_info id name gener 1 kitty 1 2 kitt 2 3 kit 2# Subje ...

  3. Qt基础入门到进阶实战资料大全(纯干货,超详细,随时更新)

    文章目录 1.简介 2.Qt官网 3.Qt开源社区 1)国内社区 a)CSDN 社区 b)Qter社区 c)QTCN开发网 2)国外社区 a)QT software b)Qt Center c)Dev ...

  4. 闭关修炼21天,“啃完”283页pdf,我终于4面拿下字节跳动offer

    写在开篇 闲话(长话短说): 今年的开端有些特殊,疫情的缘故对我们的生活造成了很大的影响,这对于一名求职者来说,更是添上了一堵"难墙",尽管如此,但我们也不能够错失金三银四的机会, ...

  5. 学校门口保安啃完这份524页“Java中高级学习笔记”都能拿13k了,你还不行动起来?

    躺平.内卷,这么多新名词下,就是一种集体焦虑和现状.无论任何年纪,人唯有自我的不断提升,才能不落伍,面对黑天鹅或灰犀牛不受大的冲击. 好了,进入正题! 最近学校的Java老师换了,是一个来自腾讯T9的 ...

  6. 100个Python实战项目(附源码),练完即可就业,从入门到进阶

    前言: "读"代码是不能给你带来任何收益的,正如"读书"一样,如果在读的时候你不琢磨,保管你读完仨月准忘了一大半.真正需要的是去"试"代码, ...

  7. 人工智能、机器学习、深度学习从入门到进阶学习资料整理

    最近整理了下在这里分享给大家,欢迎大家点赞收藏. 学习社区 神力AI(MANA):国内最大的AI代码平台. Learn AI:一个AI学习交流中心. AI研习社:一个专注于AI开发者和学术青年求知求职 ...

  8. 怒肝三个月啃完这110道面试题,跳槽薪资翻倍

    前言 最其实不管什么时候,找工作都跑不了面试.目前很多小编都做了面试手册了,那就是别人家的孩子都有糖了,作为一个自觉的小编,必须搞. 容我先絮叨一下,制作这个面试手册差不多花了3个多星期时间,过程还是 ...

  9. 闭关备战python面试50天,“啃完”这份python面试宝典,我终于四面拿下阿里offer

    写在开篇 闲话(长话短说): 本篇文章主要是回忆去年下半年的面试总结.现已入职阿里4个月的时间,终于有时间写下这篇python面经. 去年的一整年各地都在陆陆续续受到疫情的干扰,疫情的缘故对我们的生活 ...

最新文章

  1. GDCM:gdcm::PDFCodec的测试程序
  2. 巴伦周刊:“物联网”正走向死胡同
  3. Flink的时间语义和Watermark
  4. 基本sql语句--入门语句
  5. DoWhile(Java)
  6. Synergy两台电脑使用同一个鼠标和键盘
  7. PS快捷键大全 打开置入 图层操作的快捷键 新建图层 填充上色 前景色背景色等的快捷键
  8. STM32F401的PWM输出
  9. Poco库使用:文件压缩和解压缩
  10. 嘟嘟噜~~~第一次写博,纪念一下
  11. [VCS]后仿真中的几个基本概念
  12. 请收下这份秘籍: 这里有关于申请 gTech 职位所需知道的一切
  13. Python2中文乱码处理
  14. html文字自动消失了,为什么从网页上复制的文字到word上一修改后面的字就自动消失了...
  15. Linux系统cut命令详解
  16. jmeter 打开报错_Jmeter-打开jmx文件报错
  17. 外包模式下的精益敏捷开发 (人员能力篇)
  18. Cassandra数据分布之1数据中心(DC)和机架(RACK)
  19. 【牛客网】华为机试题(00、C++版本)
  20. Android Ble 一连多笔记

热门文章

  1. 夸计算机老师的成语,赞美老师的词语和句子 把诚挚的祝愿献给老师
  2. 43-为什么要训练数据集与测试数据集
  3. 高中计算机学科教学计划,高中信息技术学科教学计划
  4. DOS第二天 dir
  5. NancyFx系列之 Hello World
  6. FT232R 芯片STC15F2K60S2电脑通讯功能实现代码
  7. Arthas在线诊断工具使用
  8. 用python统计文本里的单词出现次数最多的10个
  9. 《仓库管理系统》主要功能展示
  10. 【UCIe】UCIe 相关术语名词缩写释义