因为有小伙伴的内推(其实面完我都不知道内推的什么岗位),所以我的第一站是上海:趣头条。
面试过程
下面还是进入重点,面试流程:(没有记录全,简单的答案就不贴了,大家都知道)
面试官:你先做个自我介绍吧
我叫xx,xx年毕业于xx,毕业后去了xx公司,主要负责了xx项目。主要业绩有xx。平时喜欢xx,对代码要求高,热爱学习,布拉布拉。。。
面试官:那我先问个简单的吧,简单说下activity的启动模式吧?
回答四种启动模式,分别有什么作用
面试官:现在有个场景:Activity A 启动 B ,B为 singleInstence启动模式 ,B启动 C , 这时候 在C页面按返回键,会退回到哪,再按返回退回哪?
C 按返回 回到A 再按返回 回到B 再返回退出
面试官:View的绘制流程,测量传参的形式是什么
View的绘制主要是三个方法,onMouse()onLayout()、 onDraw(); onMouse()传参会传一个 32位的int型数字,高两位代表测量模式,低30位代表具体数值。
面试官:AIDL的基本流程(如何实现AIDL),不用AIDL是否可以实现进程间通讯,用什么,如何实现。
这个可以回答很多东西,建议看看,可以看下刚哥的《Android开发艺术探索》第二章,写的很具体
面试官:有一个十互不相同的数字组成的数组,现在需要取两个数相加等于50的所有组合,请设计一个算法
首先对数组排序,然后取出首位和末尾数字,相加 判断是否大于50,如果大于50,高位迁移,如果小于50,低位后移。
面试官:你还有什么想问我的
这个必须要问,如果是技术问你,那你就多问些技术相关的。如果是人事问你,你就多问些公司发展的。
下面这些问题是当时没有回答太好,回来后查阅资料整理的:
问:Fragment的启动栈和回退栈
答:当时没答太好,找了个文章https://www.cnblogs.com/cqkxzsxy/p/7873796.html
问:Service的启动方式;Service内是否可以直接做耗时操作;广播内是否可以直接做耗时操作
答:两种启动模式,start 和 bind ; service 不能直接做耗时操作,广播内也不可以直接做耗时操作。
https://blog.csdn.net/llengnuo/article/details/76772492
问:Android线程间切换用什么,Handler的运行机制是什么。
答:https://www.jianshu.com/p/828af415472e
问:Android处理异步任务用什么,AsyncTask线程池溢出是怎么回事,如何解决。
答:异步处理:
https://www.jianshu.com/p/00b130319864
线程池溢出的问题是我简历上写的,所以每个面试都会问我。大家一定要对自己简历上写的东西特别熟悉。
问:Android屏幕适配是如何做的,今日头条是如何做的适配。
答:https://www.jianshu.com/p/cd373f529bea
问:Android组件化是否使用过,组件化直接进行通讯使用什么,路由的机制是什么。
答:组件化:https://www.jianshu.com/p/8b6e6a50e21e
路由:https://www.jianshu.com/p/3358bbb84aa5
问:简单聊一下热修复技术,tinker是否支持修改Activity的配置文件,和资源文件,它是如何做到的。
答:热修复:https://www.cnblogs.com/popfisher/p/8543973.html
问:开发中常用哪些设计模式,单例模式的几种实现方式,双重检查的机制 volatile关键词有什么作用。
答:单例模式:https://www.jianshu.com/p/4f4f2fa7e735
volatile关键字:https://blog.csdn.net/nugongahou110/article/details/49927667
问:开发过JNI吗?知道JNI如何实现吗。
答:Android JNI 开发:https://www.jianshu.com/p/87ce6f565d37
后记
虽然趣头条的面试没有过,但是给我增加的很多经验,对我后面的面试帮助很大。现在也已经找到了心仪的工作。
给大家的建议,基础知识点一定要掌握捞,简历上面写的东西一定要完全熟悉。然后就是面试要自信,不卑不亢。面试完要及时整理,找到不足点及时补充自己。
文末
那么对于想坚持程序员这行的真的就一点希望都没有吗?
其实不然,在互联网的大浪淘沙之下,留下的永远是最优秀的,我们考虑的不是哪个行业差哪个行业难,就逃避掉这些,无论哪个行业,都会有他的问题,但是无论哪个行业都会有站在最顶端的那群人。我们要做的就是努力提升自己,让自己站在最顶端,学历不够那就去读,知识不够那就去学。人之所以为人,不就是有解决问题的能力吗?挡住自己的由于只有自己。
Android希望=技能+面试
- 技能
- 面试技巧+面试题
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!