不少小伙伴还是在公众号私信问我上周怎么突然没有日更了,我也有在公众号中答应大家后面会给回复。好啦,现在还是简单说一下吧。

过去的一周中,我主要是出去找工作去啦~过去的一周,面了 4 家公司,从小到大都有,最终斩获了 3 个 offer。在经历了一番内心挣扎之后,我于周二上午决心选择了福利待遇相对较差一些的咕咚。

主要还是因为咕咚的面试官给我的印象非常深刻,我很高兴能够加入一家技术氛围如此淳厚的厂子。

所以,从此以后,你们可爱的南尘除了是一名致学人,还将成为一名咕咚范儿啦!!!

相对较大的公司的话,面试题可能更加具有一定的参考性,所以南尘就姑且把上周面试的咕咚和美团面试题分享给大家,可能不全,有些问题可能忘了。

咕咚

一面(Android Leader)

  1. 请举出你认为你在工作中挑战最大的事例;

  2. RecyclerView 一个适配器如何适配多种布局,不考虑根据不同 Type 设置不同 ViewHolder;

  3. 用过数据库么?如何防止数据库读写死锁?

    可以考虑采用 ContentProvider && 单例实现。

  4. CardView 真的好么?除了 CardView 还能用什么方式实现圆角等?假设我们有上千个 Shape 文件,如何维护?

  5. 了解过 MVVM 么?它和 MVP 有什么差距?

  6. 是否用过 DataBinding?ButterKnife 是怎么做到布局绑定的?

  7. 使用过什么图片加载库,Glide 的源码设计哪里很微妙?

  8. 知道 Linux 的线程间通信么? Android 为啥会采用 Binder?Binder 的机制又是怎样的?

  9. 讲讲 AIDL。

  10. 如何能保证随时随地都能拿到一个 Activity 的当前生命周期?

  11. 会用 Kotlin 么?

    可见 Kotlin 自从成为了谷歌首推语言后,确实还挺重要的,必须学习一下了。

  12. Android 7.0 都适配了什么?

  13. 你还有什么想问我的?

 

二面(移动端 Leader)

  1. 讲讲 HTTPS 是怎么做加密的?讲讲非对称加密算法。

  2. Android 8.0 都有些什么新特性?

  • 画中画;

  • 自适应 icon;

  • WebView 增强;

  • 通知分类别,增加圆点,通知延后,通知增加背景,同样增加历史,通知超时自动清除;

  • 自动填充信息(类似浏览器的选择保存的账号密码功能)

  • 后台执行增加限制(主要是服务和广播);

  • 蓝牙提升。支持蓝牙低功耗 5.0 标准;

  • 智能文本选择与智能共享;

  • WLAN 感知;

  • 取消屏幕纵横比限制;

  • 多显示器支持;

  • 可下载字体、XML 定义字体;

  • 自适应 TextView,统一布局边框;

  • 更丰富的色彩管理功能;

  • 可以声明应用类别。

  • 使用过 Gradle 的哪些功能。

  • RecyclerView 滑动卡顿,请分析原因,并提供解决方案。TraceView 都能看到哪些成分?

  • 操作系统里面的一个「虚拟内存」是指的什么?

    虚拟内存指的是一个对内存和外存进行调度,只是从逻辑上扩充了内存,但实际上不存在的内存存储器。

    原理是:基于局部性原理,在程序装入的时候,可以将程序的一部分装入内存,而在其余部分留在外存,就可启动程序执行;在程序执行时,当所访问的信息不在内存的时候,由操作系统所需要的部分调入内存,然后继续执行程序;操作系统再将内存中暂时不使用的内容换出到外存上,从而腾出空间存放将要调入内存的信息。

  • Android 是如何做的性能调优?

  • 讲讲适配器模式中适配器是干嘛的?在开发中都在哪里有用到?

  • 都用过哪些开源库?

  • 会用 KotLin 么?

  • 你还有什么想问我的?

  •  

    三面:技术总监

    1. 为什么大多数 API 会选择短连接而不是长连接?

    2. 为什么会选择用 RxJava?

    3. MVVM 模式到底有什么好处?

    4. 详细讲讲 Android 8.0 新特性。

    5. Kotlin 学习的怎么样了?

    6. 你的职业规划是怎么样的?

    7. 你有什么想问我的?

     

    四面:HR

    1. 你目前是在职还是已经离职?

    2. 你为什么离职?

    3. 对咕咚 APP 的了解?

    4. 你是一个自律的人么?

    5. 你的职业规划是怎么样的?

     

    五面:CT0

    1. 先做个自我介绍。

    2. 你在原来公司发展挺好的,但你为什么离职?

    3. 你们的 APP 采用蓝牙协议了么?

     

    美团

    一面(Android 技术)

    1. 讲讲你工作开发的项目是干嘛的。

    2. 手写快排;

    3. 手写二分查找,并分析时间复杂度;

    4. 讲讲 APK 是如何做瘦身的?

    5. 说说你项目中挑战最大的一件事。

    6. 讲讲 HTTPS 是如何做加密的,说下非对称加密算法;

    7. 说一下 HTTP 协议请求头我们常用的 3 个字段;

    8. 讲讲你这个图片压缩库是怎么做的?

    9. 进程保活怎么做?进程拉活现在还可以做么?

    10. 用过线程池么?讲讲 AsyncTask 的原理。

    11. 讲讲 HashMap 的原理。

    12. 讲讲 Android 如何做性能调优?

    13. 你们是如何做 UI 的机型适配的?

    14. 讲讲你们的多渠道打包是怎么做的?

    15. bugly 是干嘛用的?Handler 怎么处理内存泄漏,除了使用弱引用。你还知道哪些地方需要注意内存泄漏?

    16. Bitmap 使用需要注意哪些问题?Bitmap.recycle() 会立即回收么?什么时候会回收?如果没有地方使用这个 Bitmap,为什么垃圾回收不会直接回收它?

    17. 如何存储一个大图,但显示在 UI 上的是小图。

    18. 官方为什么会把 HttpClient 和 HttpUrlConnection 替换为 OkHttp 默认实现?它有什么好处?

    19. 你的 GitHub 上都开源了些什么东西?都为哪些开源库贡献了源码?ImagePicker 为啥会出现有些图片拿不到?

    20. 了解二叉树的遍历么?讲一讲他们。

    21. 讲讲 SVN 和 Git 的差别,Git 的优势是什么。

    22. 讲讲 MVVM,主要是为了解决 MVP 和 MVC 的什么问题?

    23. equals() 和 hashCode() 的区别是什么?平时有重写过它们么?什么情况下会去重写。

    24. 讲下为什么在 Android 下推荐使用 ArrayMap,相比 HashMap 它到底有什么优势?

     

    说些其他的

    我知道你会问我答案,实际上在互联网发达的今天,大概你是可以寻找到了。其实技术面试有时候并没有标准答案,很多时候就是一个互相交流的过程而已。

    直到现在,美团一面过去快一周了,依然还没有得到传说中的复试通知,深感难受,不过目前都不重要了,还好有了心仪的咕咚最终的认可,也算满足啦。

    不瞒你说,我对咕咚一直掺杂了很深厚的感情,能开发心爱的人常用的 APP,其实这本身就挺自豪的。

    针对个别小伙伴可能会询问我为什么放弃了薪资更好的 XXX 公司和 XXX 公司,其实结果很清楚了。相对来说,我觉得现在的自己,更需要一些志同道合的朋友,他们可以不算厉害,但至少特别努力!

    其实之前也有一位读者问我,他拿到了百词斩和美团的 offer,薪资百词斩给的肯定更高,问我如何决策。一番思考后我也是让他选择了美团的,最终他确实去了美团,目前听闻还混得有模有样的,为他骄傲。

    好啦,近期南尘在日更上可能还是会继续疏忽。毕竟暂时希望能快速融入咕咚大家庭,同时完整地交接好目前致学的工作,这才是目前最主要的。

    给大家还是会一如既往推荐一些订阅号,建议大家还是简单看看,各取所需,这就犹如创业公司一样,他们对你而言可能会一文不值,但总会有那么一些有价值的号主们。比如南尘,哈哈。

    当然,南尘还是会多加筛选,肯定给大家推荐一些很随便的订阅号的。然后,广告的话,大家也懂,南尘很少发,万一南尘发了,其实题目一般我会写的很明白,大家乐意地就点开看看,不乐意的忽略就好!

    好了就这样啦,一晚上就给大家扯这么多,希望对你,不是打扰,而是那源源不断地一丁点儿收获吧~耿直地说,我觉得这篇文章,你应该为我点赞。

    我是南尘,只做比心的技术分享者,欢迎关注我。

     

    版权声明:本文为liushilin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://www.cnblogs.com/liushilin/p/9479975.html