面经详情

面试题很有深度,很不错
为什么主线程loop不会ANR?ThreadLocal原理。Handler、MessageQueue等一套东西讲一下,详细说了下源码。volatile理解,View绘制机制,各个阶段具体说一下。现在要展示一个地球围着太阳转的动画效果,该怎么自定义view?事件分发机制讲一下,把头条App打开,拖动了个新闻但没点开,这个过程事件是怎么分发的?为什么用MVP,具体怎么实现MVP的,MVP有什么风险?

相关推荐

匿名用户
Android
未通过未通过
年后得到了一个学长的头条内推码,自己磨刀霍霍了一个假期,一点学识终于有了用武之地。在投了简历第三天,我接到了hr的电话,约好了电面时间,手心早已全是汗。 到了约定的时间,我早早等在电话旁,三点,电话如约响起。是一位技术专家,居然上来就直接问技术方面的问题。我准备了几页纸的面试题感觉都没怎么用上。我面试的是安卓开发,面试官首先问了一些安卓的设计模式,对于每种设计模式有什么理解。接下来的问题是关于四大组件的。这一点在我日后的面试中总被提到,十分重要,关于service的生命周期,两种启动方式、broadcastreceiver中的本地广播,面试官都问到了。实话说,在日常的学习中,我对于设计模式的理解只停留在知道的层面,而在工作中,了解不同设计模式对于开发很关键。还问了一些Object中的方法及如何使用。这一问题十多个方法我只说出了两三个,有点尴尬哈哈哈。 面试后半阶段,我们聊到了实际项目开发中自己获得的经验,这个问题在我后来的面试中都是面试官喜欢问的问题,获得的经验应该结合自己所学专业来谈,面试官不想听到团队协作、沟通能力这些不属于技术岗的特质,可以谈,但重点还是应该放在项目开发的难点以及如何解决上,这需要我们在开发中实时去总结,以防在面试中被问住。我的第一次面试就这样以失败告终,因为准备不充分,不了解面试会问什么,有点可惜,不过这也为我日后的面试增加了许多经验。 ...查看更多
包含1个问题,1个回答
Q:关于开发模式,请你具体的说一说。
2 年前 发布
3
匿名用户
Android
确定通过确定通过
一,唠叨一下:先讲一下我的职业生涯哈,不想看的可以直接到最后一段。我是普通二本出身,一直飘在北京,先是做web网站开发,后转到了Android移动端,也没有什么好运气,就靠一点小机智,得过且过混到16年初,靠着移动互联网大浪把我推到了一家二线互联网企业,在这里才算真正重构了自己,感谢当时遇到的同事,以及有可以和公司一起成长的机会,先后经历了完整的插件化和RN重度封装,知道了虚拟机和Android源码的重要,并开始积累。 18年初,由于公司内部重大调整,动荡不安,再加上自觉jvm和framework很溜了,于是开始看机会,寒冬初期也还算是顺利吧,进了一家普通的一线,可是没想到真正的大厂弯弯绕这么多,内斗激烈,效率如此之低,不是嫡系,你不仅少有升职加薪的机会,连好的项目都拿不到,这个时候迷茫了,大厂也算进来了,结果却如此令人失望,再加上看了一些中年危机的文章,更是稀里糊涂了,于是转而研究各种赚钱方式,基金,股票,房产,开店加盟等等吧。直到去年过年回家,跟老家发小聚会,介绍了各自的情况,才明白中国实体经济竟然是那么的糟糕,脏累险,如果轻易踏足,自己这个小白绝对会被人生吞活剥了的。 还得多谢知乎大神们的引导,这时才明白了一点,知识特别是你本专业的知识,才是安身立命之本,是你最好最快的赚钱方法,读了多少年的书中自有黄金屋,这刻才算真正领悟吧,于是用三个月逐渐修补自己最后的短板:开源库和算法,过程中,逐渐拿各细分行业的小独角兽练手,最后一次就搞定了头条,很顺利。以上就是我的唠叨和感慨,进入头条对于很多985研究生毕业的人来说,是件不太难的事情,可是对于普通人来说,还是个梦想,所以我稍微记录一下心路历程,给别人以参考。 二,头条面试流程:简历通过之后,HR会先跟你打个电话确认,然后发个流程邮件。一轮笔试,三轮技术面试,最后是HR面。在这里要聊一下,头条面试确实很有一套风格:笔试题时间大约只有四十分钟,是1个Java题,4个Android题,1个算法,1个设计,都是经典题型,谁都能写上点东西,这个最考验一个人的水平了,从你答题的深度,可以看出你的水平。技术面,每一轮时间都在一个小时左右,而且都有java,Android和算法,只是侧重点不一样,第一轮是笔试题+基础;第二轮是你简历上写的技术点,不断深入问;第三轮主要是聊你曾经做过的项目,会非常细。最后是HR,就是常见的提问,主要是收集你的情况,实话实说即可,不要太偏激就好。 三,关于面试题:头条对于员工的管理是极严格的,这些都是不允许透露的,所以为了不招惹麻烦,我就不能具体说每个题是什么了,实际上除了笔试题,其他说了也没意义,每个面试官都会根据自己的喜好以及你的简历,问出无数种问题,而且技术面足足有三轮,你可以幸运地过一个,不可能连续幸运三次,所以还是好好积累吧。 四,面试准备:首先,一定要先搭建自己的知识体系,再往里面填充各种东西,才能真正掌握,这个填充过程一定要从点滴做起,面试前才去突击是没多大作用的。对于Android工程师来说,这个越来越成熟的岗位,要求是越来越高了,知识体系大约有十个方面:Java基础,Java虚拟机;Android基础,Android源码;开源库,算法;操作系统,计算机网络;软件工程,设计模式。 下面举几个最常见的面试问题吧,Java基础:final finally finalize有什么关系,HashMap原理,编译时注解Java虚拟机:按照问到的可能性是大小,类的加载 > JMM > GC > Java内存分区 > oop-klass > JITAndroid基础:Activity A启动B之后生命周期,onSaveInstance()和onNewIntent()调用时机Android源码:消息机制,View的事件处理机制,View的绘制过程,Activity启动过程开源库:OKHttp,Glide,LeakCanary,RxJava实现原理算法:树的深度和广度优先遍历(非递归),100万个树找最大的100个,快排,堆排序操作系统:进程和线程的区别,多线程的实现方法,异步改同步,生产者消费者模式,手写线程池计算机网络:七层架构,TCP的三次握手四次挥手,https和http的区别。软件工程:类图,时序图,如何设计一个项目(往功能性,健壮性,性能性,时间成本四个纬度上套)。设计模式:面向对象七大原则,手写单例,手写观察者,代理模式。 总之,北京居不易,而选择理工科的朋友,大多都出身普通,希望大家不要忘本,知识才是改变自身命运的唯一路径。蹉跎这么久,我也是最近两年才渐渐明白这个道理,于是借着这个机会,分享给大家。 ...查看更多
2 年前 发布
8

进入微信小程序

前往微信小程序,查看更多结果

立即前往
看准网字节跳动字节跳动面试经验字节跳动面试经验:面试题很有深度,很不错
正在招聘产品经理(隐私数据管理)-信息系统200 个岗位