互联网公司菜鸟成功逆袭进入阿里钉钉,从月薪 23K 直接涨到了年薪 65W(Android 岗面经)
阿里钉钉一面(面试时长 80min)
自我介绍,对自己项目的介绍,架构图呈现
因为说自己以后的发展方向是音视频,所以问了我用过哪些现有框架
项目中的一些优化问题,M
VC -> MVP,Handler 的内存泄漏情况分析等,对 MVP 和 MVVM 的理解。
项目中的第三方库选择的问题,因为简历中写了我对第三方库选择的问题,比如选 ObjectBox 和 greenDao 的问题,图片加载框架问题
HashMap 和 HashTable,引申 ConCurrentHashmap 的深入,version1.7 和 1,8 的区别,以及高并发下 HashMap 发生的问题
四大启动模式,以及场景对应
Handler 的机制介绍,不存在消息时的 IdleHandler 的运作机制,为什么不能在子线程初始化问题
设计模式中的单例介绍,使用场景(Okhttp 的 Seesion 存储等等),在线编写
快排算法
OkHttp 的源码分析,及整体架构的流程图绘制
四大组件的完整介绍,及深入,答了 IntentService、LocalBroadcast
四大引用的问题和 MVP 框架相结合进行回答
网络中的响应码对大体进行回答,具体回答了 200、404、500、304 等
View 绘制流程问题,如何不使用 xml,来实现中间位置的定位
事件分发机制流程讲解,以及如何实现单击事件和长按事件的判定
关于为什么选用 mqtt 协议的问题,优势,原理等等(没答上来,只说针对性做过测压,以及 oceanlink 和 mqtt 的对比)
阿里钉钉二面(面试时长 30min)
自我介绍,优缺点的,以及未来希望的发展方向
目整体介绍,如何做到分压啊之类的问题
如果给我阿里、腾讯、头条、谷歌的 offer 的一个选择(不掺杂地域性的问题),首先直接否定了 google 我就的一个企业的商业模式进行分析。
我对钉钉这个产品的理解,我的回答是就的是钉钉前身的对标项目微信,已经后期转型的商业模式作出的分析,最后给出的我的结论是一个企业性质的办公软件
给出了钉钉一个 mac 平台的关于共享屏幕的耗 CPU 的问题
让我提问,提的是关于音视频发展方向的问题,具体是一个发展空间。
阿里钉钉三面(面试时长 60min,有概率通,要等 hr)
自我介绍呗,还是一样,项目介绍,项目的优缺点对比
对 MVC 和 MVP 的理解,还有 Handler 的内存泄漏问题具体是什么,解决方案知道有什么,空数据的时候 Handler 的阻塞问题,但是我还是没在 Looper 的源码中找到,这里让我好好再看一下。
另外为什么使用 MVP,他的优势是什么,内存泄漏是什么样的。
http 的长连接和短连接这两个概念,怎么去理解。我把它理解为持久化连接是什么,然后对 http 的 3 个版本的主要区别做一个介绍
http 一整个流程,什么 Baidu.com 输入,经过了什么。比较简单的问题了,必答内容 DNS、TCP 的三次握手、四次挥手,当然我再答一些 IP 路由、链路还有物理层的内容
RecyclerView 的一个复用机制,和 ListView 的一个区别在哪里
HashMap、ConcurrentHashMap、Hashtable 的问题,数据结构,线程安全啊之类的问题了,当然还是考了 version 1.7 和 1.8。
一个 app 的启动流程,冷启动和热启动,我说底层我不太了解,只知道会有 AMS 去调一些东西,但是具体内容不知道,后面就是一些初始化和 Activitiy 生命周期问题了。
一到算法题三值之和求目标值,没写暴力,因为大家都会写,但是浪费了很多时间,刚开始是通过二值求和的方式,但是想做成 O(n),其实不太可能,后面改成了 O(n^2)
评论