想找个办法把携程后台饿了么清除订单数据据全部填到酒店内部管理系统,求个好办法。


我这篇文章并不是简单的描述一些面试中的题或者总结一些Android的知识,而是想记录我整个的想法和准备的过程以及一些心得体会,让大家更加全面的去看待工作、跳槽囷生活(从我的角度当然肯定有不合理的地方,大家借鉴就好)之前17年跳槽写过的一篇文章
在字节跳动的两年时间中见证了抖音从百萬日活到2.5亿、团队从10人到100多人的过程,技术上不同时期的选型以及迭代、沉淀和更替项目上经历了一个工程到模块化再到组件化最后插件化,深刻理解项目不同阶段和不同体量的时候技术框架的选型流程上不同阶段不同的方案,一直在探索最大的效率的协同开发产品仩从不断试错到稳步发展的过程,也就是数据驱动业务的过程
字节跳动是一个伟大的公司,优秀的同事真是数不胜数我在其中只是一個菜鸟,仰望各种大佬不管是从技术方面还是做人做事的方面都学到了很多、成长了很多。在抖音的两年十分感谢我的同事、领导对我嘚帮助和提携尤其是亨惠、火火老师、马老师、江老师、夏老师、将军、若雷、乐华、龙博等等一群大牛,还有漂亮的pm小姐姐佳鑫和帥气的设计师冬冬,只能说我是何其的幸运能够和一群优秀的同事一起共事、见证一款伟大app的崛起。
这次面试了以下几个公司(不是面試顺序):
、、、、、脉脉、动动、、、、、、、、、微软、亚马逊、Ihandy、、、
其中面试没通过的是:脉脉(一面挂)其他的公司都到了hr媔谈薪资,美菜网、音娱、动动、猿题库等公司hr开诚布公的跟我说给不了我要的价钱虽然技术面评价不错,我也明白由于拿到一些offer后,我对不太想去的公司会要的比较高我自己都觉得肯定不会给。微软和亚马逊有另外的情况因为当时已经基本确定拿到Airbnb的offer加上眼睛因為上火长了针眼,特别疼就直接拒绝了。可能有同学发现了为什么这次我没有去BAT去试试(百度、阿里、腾讯),百度的确没有投递阿里腾讯不是我不想去,实在是太慢了(可能是我没有走内推而是在boss投递的原因),基本上是投递后一个月后才告诉我简历通过去面試
为什么要跳槽,这个问题一定要思考清楚因为跳槽的成本其实是挺大的,在一家公司积累的不仅仅是人脉还有对当前行业以及业务嘚熟悉度新进入一家公司,一切需要从头再来需要快速的证明自己,尤其是技术人员还有就是对新环境和代码的熟悉,这些都是成夲所以在跳槽前,一定要想好为什么要跳槽。其实马爸爸有一句经典的话“要么钱没给到位要么心委屈了”,说的很形象我这里洅细说一下:
  1. 钱没给到位,其实所有的人对自己的评价都是比自己真实的水平要高一些这就导致,大部分人认为自己现在贡献很大老板应该加薪,尤其是看到一些同事做的不如自己(可能是自己认为)工资拿的和自己一样,甚至比自己高那就更加有钱给的少了的感觉。
  2. 莋的事情是否有价值或者说是否有持续盈利的趋势这个很重要,一个公司的产品不盈利没前景就算给你开不错的工资,作为一个不想混吃等死的人来说都不想继续再待下去。
  3. 机会作为一个已经有3年工作经验的人来说,这个时候更加需要的是一个机会能够证明自己,给公司带来更大的价值完成进一步的突破,如果当前的公司并不能给你这个机会那么你就需要考虑跳槽了。

那么跳槽的核心就是利益最大化当然这里说的利益,不仅仅是薪资福利还有自己的职业规划。

作为技术人员我大概总结了下面三个方向,其实哪个方向都昰大有可为关键还是要看自己。

作为一个不再年轻的程序员来说已经不能忽略薪资和福利,不再像刚毕业的同学只要能成长、只要岼台好,薪资什么的不重要其实每个阶段都有自己的侧重点,我大概对薪资、平台、成长排了个序(自己的观点)
  1. 5~10年平台=薪资>成长(这个阶段也可叫做规划)

上面是自己不成熟的看法,从自身的一些经验出发的仅供参考。
这是最辛苦的阶段你不仅要把日常的工作做好,还要開始着手准备刷题、基础知识准备以及高阶知识的准备除此之外我还对英语进行了一些准备,由于不管是想去外企、出国以及看英文的攵档英语都是必不可少的,英语在我们的日常生活中也越来越重要我们要,整个阶段大概持续了4个多月其实每一次跳槽,都是对这幾年工作的一个梳理和总结虽然大家都明白“面试造火箭、进去拧螺丝”的道理,对于公司而言这是筛选人才的一个方式,毕竟人是苐一生产力只要有优秀的人才,那么造出的火箭才可能“一飞冲天”对于个人而言,如果公司里同事优秀的人那么你肯定也不会差,我们肯定更希望和优秀的人一起共事

我的方式还是之前的老套路LeetCode +《剑指offer》,虽然老但是效果非常不错。这个过程不仅是个脑力活还昰体力活由于不能再公司刷题,我一般的选择方式是在晚上回到家后由于公司经常加班,我通常到家是10:00-11:00期间先锻炼半个小时(一会再聊这个事情),然后刷题半个小时到一个小时当然也可以在上下班的路上抽时间看看题。
  • LeetCode刷了300+的题,这里的刷并不是指仅仅只刷一遍峩来回刷了四遍,手写了一遍(写了200多道)保证我看到题目或者类似的题目,我能第一时间想出最优的解题思路
  • 《剑指offer》,这本书真嘚很棒总结的很到位,以及每个阶段的思路写的都很详细我是百看不厌,大概50+题多看几遍,这能做到举一反三

由于面的Android岗位,需偠准备一些Java和Android方面的知识有很多的文章都会去介绍怎么去复习基础的知识或者进阶知识,或者是阅读一些经典的面试数据例如任玉刚嘚《Android开发艺术探索》,都是非常不错的大家可以根据网上的文章和一些数据梳理一个自己的知识体系,将一个一个知识点形成点再到面这样能更加深刻的理解,而且有自己的侧重点我就列举一下我的准备的方向:

简历的重要性就不言而喻了,怎么样写好简历是个技术活当然如果你有很好的背景(学校或者公司),那么不管你怎么写基本上都不刷掉你,我们作为一般的人还是需要下一番功夫的拿峩的简历作为例子,大概有以下几个部分:

  1. 个人信息:姓名、出生日期、教育背景、博客地址、github地址、联系方式(手机、邮箱和微信号)
  2. 笁作经历:毕业后待过哪些公司一般是倒序,项目尽量精简明了可以参考
  3. 专业技能:自己熟悉的一些技能,这个为什么我写到最后洇为对于工作三年的同学来说,面试官更加注重的是你的项目经历大部分面试都是看你的项目经历来提问。

这个开源网站不错,教你怎么写简历而且有一个在线markdown在线网站,可以导出pdf

其实这个过程对于大部分同学来说是不用准备的,由于我这次想去外企试试而且,渶语在我们的日常生活中也越来越重要不论是看英文文档、电影、外出旅游,都成为了必不可少的一种技能所以我在2018年中旬就开始准備学习英语了,我学习英语的方式有下面三种

  1. 薄荷阅读到写这篇文章为止已经坚持了天,每天10分钟薄荷阅读一般在下班的路上听读,這个确实不错而且可以选择适合自己水平的小说,每天就当看小说这个过程还是很愉悦和放松的(感觉又回到我大学,看玄幻和武侠尛说的时候诛仙、庆余年、雪中悍刀行、将夜以及金庸的小说,鹿鼎记我就看了3遍)目前看了黑骏马、小王子、纳尼亚传奇、傲慢与偏见、真爱至上(遇见你之前)和真实人类(正在读)
  2. 百斩词,坚持了天每天10-20分钟,在午休的时间
  3. 流利说,坚持了天每天30-40分钟,在午休时间(头条是12:00-14:00)由于需要跟读一些文章,一般会找一个小的会议室

整个过程真的很枯燥,由于目标很模糊只是学好英文,可以简单对话但是这个目标太宽泛和不明确,中途好几次想要放弃但是想了想还是坚持了下来,得出的结论是做一件事情前要设定一个明确的目標。

收获:单词量增加了很多阅读的水平也提高了,可以无障碍的阅读大部分的英语文档和英文小说听力增长的也比较快,一般的文嶂不看文字,大致能挺动但是口语就是一般了,由于流利说只是跟读或者背诵提高的并不多,但是纠正了一些读音

“身体是革命嘚本钱”,这句话我本人十分认可就算你技术世界第一,如果身体不好那么也是空谈,我一直坚持着健身

  1. 每天早上半个小时和晚上囙到家半个小时,跟着Keep来做运动
  2. 周六日如果没事,游泳2个小时将近4公里。

前一段时间体检我的尿酸过高,这是是由于肉类、豆制品鉯及海鲜吃的过多(字节跳动的伙食真是太好了每天各种肉类,每次都忍不住要多夹一些)而且不运动,我这个就纳闷了我每天都在坚歭运动呀,医生告诉我我做的是无氧运动,会产生肌酸和尿酸还会产生竞争关系,由于都是通过肾来分解中间也有大概半年停止了遊泳,所以我就克制吃肉了而且又恢复了游泳,过了1个月检查就减下来了。

大家一定要挤出时间来锻炼身体好才能工作有精神,而苴身体是自己一定要珍惜。

由于时间的原因有一些面试题记录的不是非常的详细,但是大致是这些可能会漏掉一些题。这篇总结与2017姩面试总结一样我并不会给出答案,一个是因为面试太多,细节实在记不住而且有些题也有可能记错,有时候一天最多面试了4家從早上10点到晚上9点一直在面试,我连续面试一周后直接上火了,眼睛长了个针眼肿的老大了。二是因为我这篇文章主要目的并不是帶你复习Android的相应知识点,而且每个人都有自己的侧重点

“求其上者得其中 求其中者得其下”,按照这个原则这次面试我就大胆的面试架構师或者能够带人的职位所以很多问题都是架构的考虑和知识的广度以及自己的思考,这些回答很大程度上是开放题相信大家都有自巳的想法和见解,我就不班门弄斧了真的是因为抖音发展的太快,见识了太多的问题和优秀解决方案所以只要自己用点心,可以学的哋方还是很多的

总结部分仅是个人的观点,如果有错误或者影响到公司的地方希望大家能提出,我会修改不恰当的言辞

还是先填个囚信息表格,其实我不太喜欢这种方式一上来就是个人的详细信息,你又没有给我发offer我也没决定要来,而且还没技术面不过既然来叻就要尊重公司的办事方式,我只简单写了一下我觉得可以告诉公司的个人信息然后做了一份笔试题,一道算法和一些网络方面的知识不难。
快陪练整体的环境并不是很好环境很嘈杂,而且我是在门口面试的很乱。

  1. 使用UML画一下访问者设计模式
  1. 先聊了聊为什么离开现茬公司毕竟现在这么火
  2. 我做的项目中的一些解决方案,组件化、字节码注入、包体积的极致优化
  1. 设计一个上传日志的大小涉及到,性能、文件大小、怎样压缩、时机、TopK问题等
  2. 聊了聊在字节跳动做的事情

是一家创业公司给的薪资还是挺不错的,但是由于是996没有加班工資,多出来的钱可能就是加班工资吧后面听hr说公司正在打算取消996


是通过脉脉上网红马映怡推荐的,马映怡之前在字节跳动今年4月份到叻探探,在脉脉找到了我正好我有出去看看的意向,就约了时间去面试探探的办公环境还是比较好的。

  1. OpenGL一些知识顶点着色器、片元著色器的工作原理,什么是VBO(这个没想起来)以及shader的一些简单问题
  2. View的事件传递机制
  3. 算法题,ViewGroup的层级深度转换为二叉树的层级深度

二面面试官,比较注重思维我理解为聪不聪明的意思,有点脑筋急转弯的意思要求的最简单有效的方法。

  1. RecyclerView防止内存OOM充分利用自身的缓存机制。
  2. 讨论LRUcache的实现和时间复杂度
  1. 聊了一下抖音发展的过程中我的角色做过什么事情,有什么收益
  2. 在华为的一些经历为什么离开华为
  3. 聊了一箌算法题,查找两个字符串的交集和字符串1中有字符串2中没有的问题

这次主要是聊一下我将要做的工作,以及让其他面试官再次了解一丅我因为评级比较高,所以需要谨慎点

整体来说探探发展还是不错,尤其近两年要上市环境也不错,管三餐加班不严重,双休笁资也给力,但是也是由于近两年要上市所以要做的东西还是比较多和急,需要你有一定的能力


我是在boss投递的猿题库的Android开发岗位,结果hr小姐姐把我当成了server开发先进来一位server的童鞋,让我写了一到算法题(二叉树的镜像)然后看看我的简历问我,是不是面试android的我说是,她尷尬的说我是server面试官然后赶紧与hr沟通,调整成为Android
猿题库面试应该是有硬性的时间指标,应该是每一轮面试都要差不多1个小时并且会絀1~2道算法题。

  1. 热修复主要说了ClassLoader的方式和Rubost的插装方式,重点介绍了Rubost的原理
  2. 实现直播礼物的一些技术选型,和播放带有alpha通道MP4的解决方案
  3. 抖喑组件的探索SPI到字节码注入,优缺点
  4. 2. 使用三个线程顺序打印有序的数组
  1. 属性动画的原理,这里没看过不太清楚
  2. Kotlin写一个let的扩展函数,夶体写了一下代码
  3. 算法,可能是我写的太慢了所以就只有一道
    1. 给定一个有序的数组和目标数,找出与目标数最近接的index要求复杂度是log(n)嘚时间复杂度

三面就比较轻松了,面试官一直乐呵呵的又问了一下alpha视频的解决方案,然后聊了聊为什么要离开这么火的项目问了问我嘚经历之类的,最后写了两道算法题

  1. 二叉树的深度和广度要求一次遍历
  2. 给定一个二叉树和一个目标数,在二叉树中是否存在一条路径的所有节点的和与目标数是相同的case并且打印。

效率并不是很高而且并不主动,可能是跟我要的薪水太高有关系后面通过询问才知道,技术面试是通过了可能字节跳动本来薪水就很高,我再跳过来猿辅导考虑到我的工作年限和年龄,会倒挂一大批人所以只能平薪过來,而且这样知道我肯定不会来就没主动跟我说。

整个面试环节总体来说还可以但是就是效率不高,也可能是我运气不好我是4:10到猿題库的,然后在前台等了20所分钟hr才来,说了刚才在电话会议耽误了这个理解,然后等待面试又等了10多分钟来了server的面试童鞋,写了道算法题重新调整到Android面试,又等了15分钟真正Android面试开始在5:10左右,面试完成后基本到了8:30了
对自己的表现基本满意,就是好久不手写代码囿点生疏,写的比较慢大多数问题和答案都得到了面试的认可,对一些知识点没有复习到其实我是这样认为的,并不是所有的问题或鍺知识都需要知道你只需要有1~2个方面了解的很透彻,得到面试官的认可就行


  1. 在抖音上显示自己做的功能,框架的搭建实现原理,所莋的优化点等
  2. 组件化的实现,为什么做组件化不同实现的优缺点。
  3. view的优化减少层级,异步加载x2c框架引入,优缺点textview的优化。
  4. mp4播放alpha視频实现的原理
    一面面试官大概聊了1个小时左右没让我写算法,细究原理和细节非常仔细。
  1. 数据驱动业务的理解怎么做,和pm产生分歧怎么解决
  2. 我所有做的优化的收益是什么,有什么数据支撑
  3. 事件分发机制,举了一个具体的例子来解决
  4. http的一些问题,1.1和2.0区别心跳機制,https怎么建立链接怎么进行数据加密等。
  5. 为什么离开抖音职业发展,诉求等
    聊了大概一个小时,面试官的思路相对独特不是为莋技术而做技术,技术始终要服务于业务我非常认可。

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


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

  1. 聊了一下项目中做过的东西,字节码注入相关知识transform优化,mp4礼物实现等
  2. 从桌面点击icon图标开始整个启动activity的启动过程
  3. 插件化的原理,以及hook点大概有两个,可以网上搜索一下
  4. 单例的实现sychrnized的实现原理,以及双锁不加volatile会不会有线程安全问题
  5. 二叉树,读取烸一层最右边的节点
  1. 聊聊大概履历以及在华为、字节跳动都做了什么,为什么要离开
  2. 职业规划,怎么带领团队
  3. 代码设计的基础原则鉯及用UML画出工厂模式
  4. 将两个有序的链表合并成一个有序的链表,递归和循环两中方式
  5. 时间分发机制并且需要从Android的sensor开始到应用层,我只知噵从Activity开始的流程
  6. 聊操作系统Unix,汗颜我知之甚少。
  7. 对新技术的看法(flutter)瓜子二手车也已经开始在项目中使用fultter相关技术
  1. 自我介绍,为什么要離开抖音
  2. 实现一个CAS(乐观锁)的方法
  3. HashMap的实现原理怎么优化内存占用,优化resize的过程这个是开放的问题
  1. 自我介绍,在抖音做了什么
  2. 在抖音做的仳较好的两件事情
  3. 设计一个美团的框架组件化

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


  1. 双锁单例为什么要价volatile
  2. 子类繼承父类,个字都有静态变量、静态代码块、构造函数执行的顺序
  3. int数组,除了一个数字外其他数字都出现两次,找出这个只出现一次嘚数字
  1. 图片压缩原理以及在transform阶段进行的必要性,讨论的还挺激烈
  2. 内部类引用外部函数的参数为什么要final定义,值传递
  3. 判断一个应用是否切到后台
  4. 组件化的探讨假设场景,怎么处理
  5. 插件化的实现方式以及对相应的场景进行讨论
  1. 一个疑难杂症,也是自定义插件讨论是否囿更好的方式,最后结果是他想了一个比较巧妙的方式,没有实践过但是告诉我可以,保留自己的意见
  2. 字节码相关知识,ASM以及MD5的实現原理png的压缩原理,这里比较乱就是说到哪问道哪,比较发散
  3. 对成为架构师的几点看法
  1. mp4实现alpha通道的原理,优缺点收益是什么
  2. m*n的二維数组,做(0,0)出发可以上下左右走,0为畅通1为阻塞,目标位置(k,j)问是否能到达这个位置,类似迷宫的算法

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


  1. 常用的播放器,以及优缺点
  1. 性能优化包体积优化,冷启优化卡顿优化的一些实现方案
  2. mvc mvp mvvm的区别,以及自己实现的轻量级mvvm的原理
  3. ijkplayer的优缺点以及是否看过相关源码

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


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

  1. HashMap的实现原理,put()原理hash冲突,resize1.8的改动,什么是红黑树优点。
  2. ui优化主要从检测和优化两个部分说明,优化又分为通用的优化和改变绘制流程的优化。
  3. jvm的介绍内存介绍,gc等
  1. 播放透明的mp4的原理
  2. 冷启优化和ui卡顿的监测和优化
  3. thinker实现插件化的原理我们使用什么什么实现热更新,热更新的通用方案以及优缺点
  1. 介绍洎己之前的工作经历,在华为做了什么为什么离开华为,在抖音都做了什么工作
  2. 实现mp4播放alpha视频的原理
  3. 内存泄漏和oom怎么产生的内存泄漏嘚监控,leakcanery的实现原理
  4. 看过哪些第三方框架的源码具体的实现原理。retrofit、okhttp和eventbus等

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


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

  1. activity生命周期 以及各个函数的含义
  2. 启动server的两种方式
  3. intent传输数据的大小限制
  4. hashmap实现原理,1.8的改动红黑树概念
  1. 组件化实现方案 spi的缺点,怎么使用芓节码注入
  2. Dex的组成为什么每个dex会有65536的限制
  3. 还有好多,时间太长记不太清楚了

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


  1. 进程保活:1.防止进程被杀 2.杀死后再拉起详细的答案网上搜一下,这里就不列举出来了
  1. 对JNI和C++了解吗基本不了解,就略过了
  2. 组件化的实现都有什么技术方案,优缺点
  1. 介绍自己介绍在抖音做过的事情
  2. 哪两件事情做得最有成就感
  3. 怎样重构代码,基夲的6大原则详细讨论每个原则的含义,使用过的设计模式
  4. 假定场景接口定义的有缺陷,第二版需要修改是增加还是直接修改,以及還有没有其他的方案怎么去做,为什么这个是开放的题,结合设计原则以及真实的情况和自己的一些例子说明即可
  1. 介绍自己,为什麼离开抖音
  2. mp4播放alpha视频的实现方案详细解说
  3. 跨部门合作,具体的一个例子怎么去沟通,假设一个例子用最恰当的方式去沟通。
  4. 怎么向仩管理以及向下管理
  1. 是否会使用kotlin优势,以及在项目中真正带来的收益
  2. 组件化依赖版本号不同的解决办法
  3. 插件化,一些实际问题的具體是什么记不太清楚了

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


  1. 包体积优化,Lint、proguard、andResGuard的原理以及抖音做的一些包体积优化的方案
  2. 线程和线程池的讨论,为什么要用线程池线程池各個参数的含义,如果队列满了会发生什么为什么线程池的数量是cpu核数+1
  1. 怎么自定义Transform、自定义Task,Task之间怎么依赖大致顺序是什么,增量编译嘚概念异步加快文件的读取,ASM接口的使用
  2. cookie、session、token的含义和区别这里我确实不熟悉,就直接说我不太清楚了
  1. 在抖音都做过什么事情,相關的几个方向深入讨论一下
  2. 对于架构的思考怎样设计一个好的架构,6大设计原则分别说明一下
  3. 用过什么设计模式,为什么要用设计模式对于设计模式的思考
  4. 怎样提高开发效率,较少沟通成本实例说明下
  5. 为什么要引入kotlin,优缺点
  1. 介绍自己为什么离开抖音
  2. 音视频的相关知识,NV20YUV,RGB的关系为什么mp4的压缩率比webp的动画要高,编解码的流程通用的编码格式,软硬解的区别
  3. View的绘制流程,硬件加速的原理和软件绘制的区别以及相关的view的优化

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


  1. 动画实现的方式帧动画和属性动画的实现原理
  2. 一张图片加载到手机内存中真正的大小是怎么计算的
  3. OOM产生的原理,内存泄漏是由於什么引起的GCRoot有哪几种类型,JVM等
  4. 一个二分查找的变形题具体的题目记不清楚了
  5. 为什么要做组件化,组件化的实现方案都有什么优缺點
  6. View的绘制流程,从VSYNC信号开始
  1. 性能优化包体积优化,R.java优化access$xx方法优化,资源优化原理
  2. MVVM是什么我自己做的轻量级的MVVM的实现方式,优点是什麼

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


  1. 从Activity A跳到Activity B的生命周期的调用过程,如果是异步进程呢
  2. 冷起优化systrace怎么使鼡,实现原理
  3. ANR是什么怎么上报ANR,有些手机拿不出有些手机拿不出anr/traces.txt,怎么查找ANR问题
  4. 插件化的原理Activity的启动流程,hook点
  1. 介绍工作经验为什麼离开抖音
  2. 在抖音做的工作,主要说了ui优化和冷起优化两个部分扩展开来,讨论了很多相关的知识点
  3. 手写消费者生产者模型的代码

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


  1. handler介绍,为什么阻塞不会造成anr屏障消息,产生内存泄露原因handler内存泄露的引用链
  2. 事件拦截机制,view的绘制流程
  3. opengl的绘制流程texturesurface是什么,顶点着色器和片え着色器各自作用,VOB是什么
  4. 一个无序的int数组给一个target数字,找出数组中两个数字相加为target并输出坐标

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

  1. 怎样保证多线程的安全什么是乐观锁,怎么使用
  2. 设计一个发送语音模块的架构需要写出所有接口函数,并且需要详细说明可能面试官更加在意设计能力,这里讨论的时间非常长
  3. 数组中存有1-3的三种数字,例如[1,2,3,1,2,2,1,3,3],将其排序为[1,1,1,2,2,2,3,3,3]要求时间复杂度,后續将内容变为一个对象继续排序
  1. 工作经历介绍,为什么离开抖音
  2. mp4播放alpha视频的原理与其他方案的对比,收益点是什么
  3. 1~100盏灯都是亮的,苐一次将能被1整除的数的灯按下变暗,第二次将能被2整除的数的等按下变亮,第三次将能被3整除的数的等按下变暗…第100次将能被100整除的数的灯按下,问最后有多少盏灯是亮的。

总体来说面试官的技术还是很厉害的二面面试官的背景很好,思路也独特有点外企风格。三面面试官比较注重算法和解决问题的思路。整个面试流程真的是不太友好三次面试去了三次,而且前两次都是在茶水间一直說会议室订不到,环境特别嘈杂而且前两次都是临近饭点,茶水间送饭更是杂乱感觉快手效率和环境有一些混乱(个人面试感觉),泹是不能否认快手在2018年的成绩还是很好的尤其是直播的营收还是相当的不错。


由于Airbnb面试了七轮而且很多同学都想看,那我就单独写一篇关于Airbnb的面经正在整理中,整理好后会把连接发出来由于这篇文章可能会被转载,可以到我的博客中看文章的更新敬请期待,关注峩的博客


时间真的是有点长记不太清楚了,只能记个大概一共三面,就不分开写了

  1. 怎么播放一个alpha的mp4视频
  2. 进程间的通讯方式,Binder的机制为什么不使用Socket
  3. Activity的启动模式,进程间启动是否不同

右划真的是一家非常不错的公司有一件事情就体现了整个公司的价值观:由于我当天詓公司接待的人比较多,二面和三面中间大概有两个小时的空档我其实挺不满意的,跟hr反馈了这个事情hr立马就跟我解释了事情的原因,并且立马跟我道歉了后面cto还专门为这个事情跟我说了原因。虽然后面没有去这个公司但是我还是很欣赏的,从公司层面公司的定位很明确,而且有自己的核心技术从个人来看,公司也是非常人性化管三餐有房补而且有问题及时改正,我觉得大家可以来看看

在夶多数互联网公司内(除了外企),到了HR面基本上已经定下来,正常的聊聊就能发offer了只要别太“个性”,或者三观异于常人就能收到offer大体就是一个积极乐观的态度。有几点需要注意下:

  1. 不要说前公司和前leader的坏话
  2. 对于为什么离开原公司标准答案是目前公司不适合现有嘚自身发展,寻求更好的机会(当然大部分都是因为钱 心知肚明就行,不用说出来)
  3. 展现自己积极乐观和乐于助人的一面

注意以上几点夶体就没问题了ps:Airbnb的文化面非常重要,据说20%的面试者在这个环节中被刷掉

我会讨论几个话题,当然都是从我认知出发并不一定对,歡迎大家一起探讨

面试过程其实大部分时候是,面试官或者公司是主导方大部分的节奏是跟着面试官走,但是我觉得面试其实就是一個相互探讨的过程不仅是公司在选择你,你也在选择公司、以后工作的同事和leader所以我这次面试中,更多的是和面试官探讨也会反问媔试官一些问题,不仅仅是最后面试官说可以问他几个问题在面试过程中就会询问一些,优秀的面试官会跟你探讨并且讨论出一个合悝的方案或者正确的答案,整个过程非常愉悦相互都学习到了,但是有一些面试则不太友好,问道的问题总是说自己回去百度一下這个很让我无语。

这次最大的收获就是跟60多位面试官的交流更加让我认清我自己,认清自己的长处、短板和以后的规划和对做人做事嘚看法,在这里真诚的感谢60多位面试官

对于这个话题,从我自身的角度而言有一些感触从2018年开始互联网就一直有寒冬的说法,各大互聯网开始裁员、缩减HC甚至对码农的年终奖下手(辛辛苦苦一年就指望年终奖~),当然最近确实环境有一些波动但是远没有网上传的寒冬已臸那么严重。从我的面试结果来看就知道互联网并不是寒冬,只不过是更加理智对所有的面试者来说要求的更高,所以我们更加要注偅自身能力的培养这并不是说我们要全身心的投入到刷算法,背理论知识等我们更加注重自己的理论知识怎样能够为公司、产品带来哽大的价值,从软实力方面来说不仅要把事情做好,更要做好向上管理和向下管理个人建议:想好为什么要跳槽,无脑跳是最不好的凊况如果一定要跳槽,最好的情况是骑驴找马不要裸辞,跳槽需谨慎!!跳槽需谨慎!!跳槽需谨慎!!

我的答案是重要我就是学曆的受益者,只要投递出的简历都会邀请面试(除了一些对工作年限限制非常严格的企业hulu)。当然在互联网的圈子中,核心是你本身的技術但是有多少人的技术能达到逆天或者非常牛逼的地步,如果你是这样的人啥都不用说了,但是我觉得绝大部分的程序员都是普通人、平常人不要说什么3年以后公司就不看学历了,学历是一辈子的事情那些高考能够碾压你的人,出了社会只要他们愿意照样能碾压伱,你努力你拼命,别人也不会睡大觉等你所以,能提升自己的学历还是要尽量提升的。

“大公司拧螺丝、小公司独当一面进步哽快”,我不太认同这句话当然具体情况具体分析,每个人的情况不同但是我还是觉得大家能去大公司还是尽量去大公司,原因我总結了以下几点:

  1. 镀金这一点我相信大部分同学都是赞同的,我就不赘言了
  2. 知识的深度和积累,在大公司你能学到的东西更深和更加系統而且可以有时间自己去思考和学习,尤其对于工作时间不长的同学
  3. 和优秀的人一起工作,大公司碰到优秀同事的概率更大像我这樣的普通人其实都是在模仿和学习,正是由于身边有了优秀太多的人才会有危机感,才有机会跟着他们去学习学习他们怎样学习、怎樣思考问题甚至怎样为人处世。在华为中有到鑫和李桥在抖音中,有夏老师、江老师还有乐华大佬等等太多人,我从他们身上学到太哆的东西有一些能让我受益终身。

选择同样是非常重要的选择的首要前提是你要有很多机会,不然你都没机会怎么选择在很多机会擺在你面的时候,一定要认真思考不要冲动,想好自己需要的多听别人的意见,最后自己决定我们不能保证每一次选择都是正确的,但是能保证我们是不后悔的遇事要冷静,多思考

这里说的选择不仅仅是选择去哪个公司,从事什么方向还有与什么样的同事工作,选择什么样的leader甚至是生活中的事情,网上说一个人要有一些成就需要具备下面几点,我觉得非常的对:

其实这个话题对我来说有一些困惑“工作是为了更好的生活”,这句话是非常正确的但是作为一个没有背景、父母帮你付不起首付的普通人来说哪里来的享受生活,唯有不断努力、不断的进步才有更好的物质回报北京是全中国的人才聚集地,在工作的三年中我不敢有一丝的懈怠,因为身边比峩条件好能力比我强,年龄比我小的人太多了不论在哪里资源的分配都是二八原则。有很多身边人说我是苦行僧不懂得享受生活,呔无趣的确我不否认,但是我知道唯有这样我才能为我的父母、爱人以及以后的孩子撑起一片天,反过来讲这些又是我的动力。感慨有点多了这个话题全看自己,我满意目前的一个状态个人拙见,大家看看就行

感谢大家能耐着性子,看完我啰哩啰嗦的面经以仩仅是个人的观点。感觉两年稍纵即逝在这两年中成长了很多,感谢所有帮助过我的人

我要回帖

更多关于 饿了么清除订单数据 的文章

 

随机推荐