查看原文
其他

漫画:倒在互联网寒冬的我,又经历了怎样的面试?

Meteor 程序人生 2019-04-16

记一次趣头条 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万篇中国英文论文?然而,真正的问题是……

☞ 偷电、挖矿、赚快钱,这些大学生到底怎么了?

终于有人把5G和边缘计算的关系说清楚了  | 技术头条

☞ 程序员为什么都爱穿冲锋衣?(最全总结)

System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!\n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存