说说最近一周的面试和想法
不少小伙伴还是在公众号私信问我上周怎么突然没有日更了,我也有在公众号中答应大家后面会给回复。好啦,现在还是简单说一下吧。
过去的一周中,我主要是出去找工作去啦~过去的一周,面了 4 家公司,从小到大都有,最终斩获了 3 个 offer。在经历了一番内心挣扎之后,我于周二上午决心选择了福利待遇相对较差一些的咕咚。
主要还是因为咕咚的面试官给我的印象非常深刻,我很高兴能够加入一家技术氛围如此淳厚的厂子。
所以,从此以后,你们可爱的南尘除了是一名致学人,还将成为一名咕咚范儿啦!!!
相对较大的公司的话,面试题可能更加具有一定的参考性,所以南尘就姑且把上周面试的咕咚和美团面试题分享给大家,可能不全,有些问题可能忘了。
咕咚
一面(Android Leader)
-
请举出你认为你在工作中挑战最大的事例;
-
RecyclerView 一个适配器如何适配多种布局,不考虑根据不同 Type 设置不同 ViewHolder;
-
用过数据库么?如何防止数据库读写死锁?
可以考虑采用 ContentProvider && 单例实现。
-
CardView 真的好么?除了 CardView 还能用什么方式实现圆角等?假设我们有上千个 Shape 文件,如何维护?
-
了解过 MVVM 么?它和 MVP 有什么差距?
-
是否用过 DataBinding?ButterKnife 是怎么做到布局绑定的?
-
使用过什么图片加载库,Glide 的源码设计哪里很微妙?
-
知道 Linux 的线程间通信么? Android 为啥会采用 Binder?Binder 的机制又是怎样的?
-
讲讲 AIDL。
-
如何能保证随时随地都能拿到一个 Activity 的当前生命周期?
-
会用 Kotlin 么?
可见 Kotlin 自从成为了谷歌首推语言后,确实还挺重要的,必须学习一下了。
-
Android 7.0 都适配了什么?
-
你还有什么想问我的?
二面(移动端 Leader)
-
讲讲 HTTPS 是怎么做加密的?讲讲非对称加密算法。
-
Android 8.0 都有些什么新特性?
-
画中画;
-
自适应 icon;
-
WebView 增强;
-
通知分类别,增加圆点,通知延后,通知增加背景,同样增加历史,通知超时自动清除;
-
自动填充信息(类似浏览器的选择保存的账号密码功能)
-
后台执行增加限制(主要是服务和广播);
-
蓝牙提升。支持蓝牙低功耗 5.0 标准;
-
智能文本选择与智能共享;
-
WLAN 感知;
-
取消屏幕纵横比限制;
-
多显示器支持;
-
可下载字体、XML 定义字体;
-
自适应 TextView,统一布局边框;
-
更丰富的色彩管理功能;
-
可以声明应用类别。
使用过 Gradle 的哪些功能。
RecyclerView 滑动卡顿,请分析原因,并提供解决方案。TraceView 都能看到哪些成分?
操作系统里面的一个「虚拟内存」是指的什么?
虚拟内存指的是一个对内存和外存进行调度,只是从逻辑上扩充了内存,但实际上不存在的内存存储器。
原理是:基于局部性原理,在程序装入的时候,可以将程序的一部分装入内存,而在其余部分留在外存,就可启动程序执行;在程序执行时,当所访问的信息不在内存的时候,由操作系统所需要的部分调入内存,然后继续执行程序;操作系统再将内存中暂时不使用的内容换出到外存上,从而腾出空间存放将要调入内存的信息。
Android 是如何做的性能调优?
讲讲适配器模式中适配器是干嘛的?在开发中都在哪里有用到?
都用过哪些开源库?
会用 KotLin 么?
你还有什么想问我的?
三面:技术总监
-
为什么大多数 API 会选择短连接而不是长连接?
-
为什么会选择用 RxJava?
-
MVVM 模式到底有什么好处?
-
详细讲讲 Android 8.0 新特性。
-
Kotlin 学习的怎么样了?
-
你的职业规划是怎么样的?
-
你有什么想问我的?
四面:HR
-
你目前是在职还是已经离职?
-
你为什么离职?
-
对咕咚 APP 的了解?
-
你是一个自律的人么?
-
你的职业规划是怎么样的?
五面:CT0
-
先做个自我介绍。
-
你在原来公司发展挺好的,但你为什么离职?
-
你们的 APP 采用蓝牙协议了么?
美团
一面(Android 技术)
-
讲讲你工作开发的项目是干嘛的。
-
手写快排;
-
手写二分查找,并分析时间复杂度;
-
讲讲 APK 是如何做瘦身的?
-
说说你项目中挑战最大的一件事。
-
讲讲 HTTPS 是如何做加密的,说下非对称加密算法;
-
说一下 HTTP 协议请求头我们常用的 3 个字段;
-
讲讲你这个图片压缩库是怎么做的?
-
进程保活怎么做?进程拉活现在还可以做么?
-
用过线程池么?讲讲 AsyncTask 的原理。
-
讲讲 HashMap 的原理。
-
讲讲 Android 如何做性能调优?
-
你们是如何做 UI 的机型适配的?
-
讲讲你们的多渠道打包是怎么做的?
-
bugly 是干嘛用的?Handler 怎么处理内存泄漏,除了使用弱引用。你还知道哪些地方需要注意内存泄漏?
-
Bitmap 使用需要注意哪些问题?Bitmap.recycle() 会立即回收么?什么时候会回收?如果没有地方使用这个 Bitmap,为什么垃圾回收不会直接回收它?
-
如何存储一个大图,但显示在 UI 上的是小图。
-
官方为什么会把 HttpClient 和 HttpUrlConnection 替换为 OkHttp 默认实现?它有什么好处?
-
你的 GitHub 上都开源了些什么东西?都为哪些开源库贡献了源码?ImagePicker 为啥会出现有些图片拿不到?
-
了解二叉树的遍历么?讲一讲他们。
-
讲讲 SVN 和 Git 的差别,Git 的优势是什么。
-
讲讲 MVVM,主要是为了解决 MVP 和 MVC 的什么问题?
-
equals() 和 hashCode() 的区别是什么?平时有重写过它们么?什么情况下会去重写。
-
讲下为什么在 Android 下推荐使用 ArrayMap,相比 HashMap 它到底有什么优势?
说些其他的
我知道你会问我答案,实际上在互联网发达的今天,大概你是可以寻找到了。其实技术面试有时候并没有标准答案,很多时候就是一个互相交流的过程而已。
直到现在,美团一面过去快一周了,依然还没有得到传说中的复试通知,深感难受,不过目前都不重要了,还好有了心仪的咕咚最终的认可,也算满足啦。
不瞒你说,我对咕咚一直掺杂了很深厚的感情,能开发心爱的人常用的 APP,其实这本身就挺自豪的。
针对个别小伙伴可能会询问我为什么放弃了薪资更好的 XXX 公司和 XXX 公司,其实结果很清楚了。相对来说,我觉得现在的自己,更需要一些志同道合的朋友,他们可以不算厉害,但至少特别努力!
其实之前也有一位读者问我,他拿到了百词斩和美团的 offer,薪资百词斩给的肯定更高,问我如何决策。一番思考后我也是让他选择了美团的,最终他确实去了美团,目前听闻还混得有模有样的,为他骄傲。
好啦,近期南尘在日更上可能还是会继续疏忽。毕竟暂时希望能快速融入咕咚大家庭,同时完整地交接好目前致学的工作,这才是目前最主要的。
给大家还是会一如既往推荐一些订阅号,建议大家还是简单看看,各取所需,这就犹如创业公司一样,他们对你而言可能会一文不值,但总会有那么一些有价值的号主们。比如南尘,哈哈。
当然,南尘还是会多加筛选,肯定给大家推荐一些很随便的订阅号的。然后,广告的话,大家也懂,南尘很少发,万一南尘发了,其实题目一般我会写的很明白,大家乐意地就点开看看,不乐意的忽略就好!
好了就这样啦,一晚上就给大家扯这么多,希望对你,不是打扰,而是那源源不断地一丁点儿收获吧~耿直地说,我觉得这篇文章,你应该为我点赞。
我是南尘,只做比心的技术分享者,欢迎关注我。