一位老哥分享给我的互联网公司面试教训,非BAT这些一线大厂,但也是国内比拟当先的互联网公司。
公司:快陪练
还是先填个人信息表格,其实我不太喜爱这种形式,一上来就是集体的详细信息,你又没有给我发offer,我也没决定要来,而且还没技术面。不过既然来了就要尊重公司的办事形式,我只简略写了一下我感觉能够通知公司的个人信息。而后做了一份口试题,一道算法和一些网络方面的常识,不难。快陪练整体的环境并不是很好,环境很嘈杂,而且我是在门口面试的,很乱。
一面
- MVC、MVP和MVVM的原理和区别
- 设计的六大根底准则
- 应用UML画一下访问者设计模式
二面
- 先聊了聊为什么来到当初公司,毕竟当初这么火
- 我做的我的项目中的一些解决方案,组件化、字节码注入、包体积的极致优化
- 直播的架构设计
三面
- 设计一个上传日志的大小,波及到,性能、文件大小、怎么压缩、机会、TopK问题等聊了聊在字节跳动做的事件
总结
是一家守业公司,给的薪资还是挺不错的,然而因为是996,没有加班工资,多进去的钱可能就是加班工资吧,前面听hr说公司正在打算勾销996
公司:探探
是通过脉脉上网红马映怡举荐的,马映怡之前在字节跳动,往年4月份到了探探,在脉脉找到了我,正好我有进来看看的动向,就约了工夫去面试,探探的办公环境还是比拟好的。
一面
- OpenGL一些常识,顶点着色器、片元着色器的工作原理,什么是VBO(这个没想起来),以及shader的一些简略问题
- View的事件传递机制
- 包体积优化
- JVM相干常识,Dalvik和ART的区别
- 组件化的实现计划
- 算法题,ViewGroup的层级深度,转换为二叉树的层级深度
二面
- 二面面试官,比拟重视思维,我了解为聪不聪慧的意思,有点脑筋急转弯的意思,要求的最简略无效的办法。
- RecyclerView避免内存OOM的一道题,充沛利用自身的缓存机制,可能我始终没了解问题所在,尽管给出解决方案,然而面试官不称心,太繁琐
- 探讨LRUcache的实现和工夫复杂度
三面
- cto面试
- 聊了一下抖音倒退的过程中我的角色,做过什么事件,有什么收益
- 在华为的一些经验,为什么来到华为
- 聊了一到算法题,查找两个字符串的交加和字符串1中有字符串2中没有的问题。
四面
- 这次次要是聊一下我将要做的工作,以及让其余面试官再次理解一下我,因为评级比拟高,所以须要审慎点。
总结
整体来说探探倒退还是不错,尤其近两年要上市(和陌陌签了对赌协定),环境也不错,管三餐,加班不重大,双休,工资也给力,然而也是因为近两年要上市,所以要做的货色还是比拟多和急,须要你有肯定的能力。很难堪的是在给我offer的第二周,探探就被Android市场下架了。
公司:猿题库
我是在boss投递的猿题库的Android开发岗位,后果hr小姐姐把我当成了server开发,先进来一位server的童鞋,让我写了一到算法题(二叉树的镜像),而后看看我的简历问我,是不是面试android的,我说是,她难堪的说我是server面试官,而后连忙与hr沟通,调整成为Android。猿题库面试应该是有硬性的工夫指标,应该是每一轮面试都要差不多1个小时,并且会出1~2道算法题。
一面
- 热修复,次要说了ClassLoader的形式和Rubost的插装形式,重点介绍了Rubost的原理。
- 实现直播礼物的一些技术选型,和播放带有alpha通道MP4的解决方案
- 怎么实现字节码注入
- 抖音组件的摸索,SPI到字节码注入,优缺点。
- 接下来就是两道算法题
- \1. String字符串的数字相加
- \2. 应用三个线程程序打印有序的数组
- 发问环节
二面
包体积优化:动态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了,面试流程也绝对较少。对趣头条的营收模式看的不是很分明,相似发钱看新闻,然而当初头条也再做这个,趣头条可能搞得过头条是个问题,如果没有增长点,那前期的转型是什么?ps:从我拿到offer到当初曾经一个多月了,股价从10美金跌倒了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还是十分真挚的,想去的敌人能够思考思考。
面试之前我看过很多大佬写的面经,包含各大厂最新面试题以及面经,还有波及JVM,Mysql,并发,Spring,Mybatis,Redis,MQ,Zookeeper,Netty,Dubbo,Spring Boot,Spring Cloud,数据结构与算法,设计模式,网络与操作系统等相干技术畛域的大厂面试题及详解。若是感兴趣想学习的敌人点击此处收费支付。
公司:伴鱼
口试
- 双锁单例,为什么要价violate
- 外部类拜访外部类
- 函数值传递的一些题
- 子类继承父类,个字都有动态变量、动态代码块、构造函数,执行的程序
- int数组,除了一个数字外,其余数字都呈现两次,找出这个只呈现一次的数字
一面
- 图片压缩原理,以及在transform阶段进行的必要性,探讨的还挺强烈
- 外部类援用内部函数的参数,为什么要final定义,值传递
- 判断一个利用是否切到后盾
- 组件化的探讨,假如场景,怎么解决
- 插件化的实现形式,以及对相应的场景进行探讨
二面(伴鱼的架构师)
- 一个疑难杂症,也是自定义插件,探讨是否有更好的形式,最初后果是,他想了一个比拟奇妙的形式,没有实际过,然而通知我能够,保留本人的意见。
- 字节码相干常识,ASM以及MD5的实现原理,png的压缩原理,这里比拟乱,就是说到哪问道哪,比拟发散。
- 对成为架构师的几点认识
三面
- mp4实现alpha通道的原理,优缺点,收益是什么
- m*n的二维数组,做(0,0)登程,能够上下左右走,0为畅通,1为阻塞,指标地位(k,j),问是否能达到这个地位,相似迷宫的算法总结
- 感觉伴鱼的面试目标是问倒你,很屡次探讨问题,我说你有什么认识或者正确答案的时候,面试官就让我回去本人上网搜一下,或者给出的计划,经不起我的斟酌,我问上两三个问题,面试官反而有点语塞,感觉很奇怪。
公司:最右
口试题
- Android中的援用关系
- 自定义view步骤
- activity生命周期
一面
- 介绍最右的现状
- 罕用的播放器,以及优缺点
- opengl的绘制流程
- 音视频编解码的流程
二面
- 在抖音做的工作
- 性能优化,包体积优化,冷启优化,卡顿优化的一些实现计划
- mvc mvp mvvm的区别,以及本人实现的轻量级mvvm的原理
- 编解码的相干常识
- ijkplayer的优缺点,以及是否看过相干源码
- flutter的探讨
总结
总体来说面试流程中规中矩,然而面试官的问题并不是很全面,更加关怀的是本人的关怀的畛域,对于我提出的问题(大前端和flutter),见解也仅仅是须要对新技术放弃肯定的敏感度,从公司产品来看,尤其是4月份出过一些事变,dau跌的十分厉害,如同只有100w+的日活,办公环境也个别,前面hr让我去跟cto再谈一轮,因为思考到各个方面的因素,就间接回绝了。
公司: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小姐姐是广东人,谈话的声音很好听,也很真挚。
公司:音娱科技
次要做的日本的直播产品,如同是A轮,公司并不大,创始人如同也是头条进去的,各种福利制度和头条进本相似。
一面
- activity生命周期 以及各个函数的含意
- activity task的四种类型
- fragment的生命周期
- 启动server的两种形式
- intent传输数据的大小限度
- binder的原理
- activity的启动流程
- hashmap实现原理,1.8的改变,红黑树概念
- 合并两个有序的链表
二面
- 为什么来到抖音
- 组件化实现计划 spi的毛病,怎么应用字节码注入
- Dex的组成,为什么每个dex会有65536的限度
- 还有好多,工夫太长记不太分明了
总结
是A轮守业公司,面试技术是通过了,最终卡在薪资,可能我要的太高,公司可能感觉按照我当初背景,性价比不高,就没谈上来,前面跟其余公司聊的时候,又理解了一些这个公司的状况,拿完年终奖后,很多人开始跳槽了。
公司:小红书
一面
- Activity的生命周期、fragment的生命周期,onRestart()什么时候调用
- service的两种启动形式,service的生命周期
- binder机制
- 过程保活:1.避免过程被杀 2.杀死后再拉起,具体的答案网上搜一下,这里就不列举进去了app的包体积优化,lint、proguard、andresguard原理,字节码注入,删除R.java的变量,删除access001办法,压缩图片资源和应用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轮,不过总体来说技术还是很不错的,不论是广度还是深度,是一个值得退出的公司。
公司:饿了么
一面
- 包体积优化,Lint、proguard、andResGuard的原理,以及抖音做的一些包体积优化的计划
- 线程和线程池的探讨,为什么要用线程池,线程池各个参数的含意,如果队列满了会产生什么,为什么线程池的数量是cpu核数+1好吧,记不起来了
二面
- 自我介绍
- 线程平安的形式,sychronized和violated的区别
- 怎么自定义Transform、自定义Task,Task之间怎么依赖,大抵程序是什么,增量编译的概念,异步放慢文件的读取,ASM接口的应用cookie、session、token的含意和区别,这里我的确不相熟,就间接说我不太分明了。
三面
- 自我介绍
- 在抖音都做过什么事件,相干的几个方向深刻讨论一下
- 对于架构的思考,怎么设计一个好的架构,6大设计准则,别离阐明一下
- 用过什么设计模式,为什么要用设计模式,对于设计模式的思考
- 怎么进步开发效率,较少沟通老本,实例阐明下
- 为什么要引入kotlin,优缺点
- 当前的布局
四面(穿插面)
- 介绍本人,为什么来到抖音
- 音视频的相干常识,NV20,YUV,RGB的关系,为什么mp4的压缩率比webp的动画要高,编解码的流程,通用的编码格局,软硬解的区别。
- View的绘制流程,硬件加速的原理和软件绘制的区别,以及相干的view的优化
总结
总体来说面试体验还是不错的,三面面试官对于职业倒退和新技术的见解都是十分粗浅,也给与了我很多倡议。
公司:美菜网
一面
- 动画实现的形式,帧动画和属性动画的实现原理
- 一张图片加载到手机内存中真正的大小是怎么计算的
- 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谈完后就来到了。
公司:爱奇艺
一面
- 从Activity A跳到Activity B的生命周期的调用过程,如果是异步过程呢
- 冷起优化,systrace怎么应用,实现原理
- ANR是什么,怎么上报ANR,有些手机拿不出,有些手机拿不出anr/traces.txt,怎么查找ANR问题
- 插件化的原理,Activity的启动流程,hook点
- 一个类,外部有一个链表的数据结构,实现void add(Node n)和void remove(int index)的函数
二面
- 介绍工作教训,为什么来到抖音
- HashMap的实现原理
- 在抖音做的工作,次要说了ui优化和冷起优化两个局部,扩大开来,探讨了很多相干的知识点
- 手写消费者生产者模型的代码
总结
这次面试的是爱奇艺TV端奇异果,并不是爱奇艺挪动端app,因为我还是想做app,二面之后,我就跟面试官说了我的想法,就没必要聊上来了,就间接走了。
公司:快手
一面
- handler介绍,为什么阻塞不会造成anr,屏障音讯,产生内存泄露起因,handler内存泄露的援用链
- 事件拦挡机制,view的绘制流程
- android的零碎渲染原理,renderthread的解释,三缓冲机制播放通明mp4的原理,surfaceview和textureview的区别
- opengl的绘制流程,texturesurface是什么,顶点着色器和片元着色器各自作用,VOB是什么
- 一个无序的int数组,给一个target数字,找出数组中两个数字相加为target,并输入坐标
二面
- 二面面试官是facebook回来的,面试格调确实和之前的面试官探讨不一样
- hashmap的实现原理,怎么找到index,size为什么是2的倍数,怎么resize,resize过后,之前的hash抵触还存在吗?currenthashmap的实现原理
- 怎么保障多线程的平安,什么是乐观锁,怎么应用
- 设计一个发送语音模块的架构,须要写出所有接口函数,并且须要具体阐明,可能面试官更加在意设计能力,这里探讨的工夫十分长。view的绘制流程,onMeasure、onLayout、onDraw,各个参数是什么含意,尤其是widthMeasureSpec、heightMeasureSpec以及对应的AT_MOST、EXACTLY和UNSPECIFIED
- 数组中存有1-3的三种数字,例如[1,2,3,1,2,2,1,3,3],将其排序为[1,1,1,2,2,2,3,3,3],要求工夫复杂度,后续将内容变为一个对象,持续排序
三面
- 工作经验介绍,为什么来到抖音
- mp4播放alpha视频的原理,与其余计划的比照,收益点是什么
- "之"字形打印二叉树
- 1~100盏灯,都是亮的,第一次将能被1整除的数的灯按下,变暗,第二次将能被2整除的数的等按下,变亮,第三次将能被3整除的数的等按下,变暗…第100次将能被100整除的数的灯按下,问,最初有多少盏灯是亮的。
总结
总体来说面试官的技术还是很厉害的,二面面试官的背景很好,思路也独特,有点外企格调。三面面试官比拟重视算法,和解决问题的思路。整个面试流程真的是不太敌对,三次面试去了三次,而且前两次都是在茶水间,始终说会议室订不到,环境特地嘈杂,而且前两次都是邻近饭点,茶水间送饭更是芜杂,感觉快手效率和环境有一些凌乱(集体面试感觉),然而不能否定快手在2018年的问题还是很好的,尤其是直播的营收甩抖音直播几条街。
HR面总结
- 在大多数互联网公司内(除了外企),到了HR面,基本上曾经定下来,失常的聊聊就能发offer了,只有别太“共性”,或者三观异于常人就能收到offer,大体就是一个踊跃乐观的态度。有几点须要留神下:
- 不要说前公司和前leader的好话
- 对于为什么来到原公司,标准答案是目前公司不适宜现有的本身倒退,寻求更好的机会,(当然大部分都是因为钱 心知肚明就行,不用说进去)
- 展示本人踊跃乐观和乐于助人的一面
留神以上几点大体就没问题了
这次最大的播种就是跟60多位面试官的交换,更加让我认清我本人,认清本人的短处、短板和当前的布局,和对做人做事的认识,在这里真挚的感激60多位面试官。