漫画:倒在互联网寒冬的我,又经历了怎样的面试?
记一次趣头条 Android 面试(25k-35k)……
作者 | 陈宇明
责编 | 仲培艺
2018 年末,在互联网寒冬下,本人也很不幸成为了牺牲品,原公司项目停止,项目组解散。我也在没有任何补偿的情况下(郑州很多公司都不正规,工资发全就不错了)被迫离职。
过年期间给自己定了下个工作的期望:
1. 离开郑州
2. 公司规模要大(有成熟的产品和开发流程)
3. 有良好的技术氛围
4. 合理的加班
年后我带着这个期望,怀着少许的不安和些许的期待踏上了南下的高铁。
因为有小伙伴的内推(其实面完我都不知道内推的什么岗位),所以我的第一站是上海:趣头条。
面试流程
下面还是进入重点,面试流程(没有记录全,简单的答案就不贴了,大家都知道):
你先做个自我介绍吧
我叫xx,xx年毕业于xx,毕业后去了xx公司,主要负责了xx项目。主要业绩有xx。平时喜欢xx,对代码要求高,热爱学习,balahbalah……
那我先问个简单的吧,简单说下 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
后记
虽然趣头条的面试没有过,但是给我增加了很多经验,对我后面的面试帮助很大。现在也已经找到了心仪的工作。
给大家的建议是,基础知识点一定要掌握牢,简历上面写的东西一定要完全熟悉。然后就是面试要自信,不卑不亢。面试完要及时整理,找到不足点及时补充自己。
最后祝愿大家在金三银四的跳槽季都能找到自己心仪的工作。
作者:陈宇明,半路出家的程序员,现任技术负责人,「码个蛋」公众号作者。
声明:本文系作者投稿,版权归其所有。
热 文 推 荐
戳他↓↓↓
☞ 996:只要能活着就好,不管活得多么糟糕 | 程序员有话说
☞ 京东或将裁员 12000 人!雷军年薪百亿;马云:阿里没人敢跟我打赌 | 极客头条
☞ 39个国外SCI抢发6万篇中国英文论文?然而,真正的问题是……
System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!\n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"