再见企鹅,你好钉钉!(送阿里P7面经一份!)

   日期:2024-12-26    作者:nzs5p 移动:http://ljhr2012.riyuangf.com/mobile/quote/39848.html

社招跟校招的一大差别是,社招中的基础题部分只是前菜,招聘方会非常重视你的项目经历,通过询问项目经历会扩展到对技术、学习能力、沟通能力等的考察。

再见企鹅,你好钉钉!(送阿里P7面经一份!)

关于如何复习项目从面试情况看,可以从总体架构、项目细节、项目亮点、碰到的问题以及场景复述等方面入手。

总体架构和项目细节不用过多解释,前者是从宏观角度向对方介绍你的项目的架构,用最短的时间让对方理解项目通过哪些模块或组件间的协作去实现功能的;后者是对方可能会提出一些感兴趣的点询问你项目细节 —— 所以千万记得认真掌握项目关键细节,否则答不出来会很尴尬。

项目亮点和难题则是面试必备,基本大部分面试都会问到这块,无他,对方不了解你的项目的情况下肯定希望你能展示出可以为自己加分的点。

1.4 简历投递

准备得差不多后就可以开始进入简历投递环节了,我觉得简历投递的途径的优先级是这样的熟人内推 > 优秀猎头推荐 > 普通网友内推 > 普通猎头推荐 > 官网投递

假如你的简历光芒闪闪,阿里星那种级别,那随便投递都可以很快有响应,否则投递的途径还是很重要的。

熟人内推当然是第一选择,通过熟人你不止可以知道部门内部的业务发展、晋升、加班等情况,在走流程时也可以通过他直接接触到你的未来 leader。而为什么优秀猎头的内推会比普通网友内推要好呢?我个人的感受是优秀猎头会比普通网友更了解招聘情况且能更积极得帮你催流程,而真正优秀的猎头,在对公司整体信息的掌握上是高于普通员工的。

面试中要沉着冷静、面试前要确认面试时间并提前到……这些啰嗦的小 Tip 我就不说了,聪明的你一定能注意。这里我尝试总结一下碰到过的常见的考察方向(或者说“题型”)。

2.1 算法

对于算法的考察,从个人有限的经验上看,貌似难度都是适中的。特别是对于我们客户端开发而言,考察的算法都比较常规。(呃,某些很注重这块的公司除外 —— 当然注重这块也是好事,我们只能去适应公司的风格而不能要求公司适应我们

算法这块我也是“低手”(这块强的同学可以留言教授一下比较好的学习方案,多学习多练习吧。

这次求职中,比较高频的题目是"第 TopK 大的数"(快排思想、能提到线性查找算法 BFPAT 更佳) 和 “前 TopN 个数” (堆排序、先分治再堆排序)。

2.2 技术基础

就像面试前我们准备的,基础题基本是必问的,就算不深究 Android 的基础,问你一些计算机网络的东西不为过吧。这块我们必须拿出校招时的劲头来,老老实实复习。至于具体的题目什么的我就不罗列了,网上有一堆面经,github 上也有很多整理好的题库。

对 Android 开发来说,可以分成两块,第一块是 Android 相关基础。**跟初级开发的面试不同的是,这里的基础不会是简单的“四大组件是哪些”,而是会问你具体的使用和碰到的问题。**比如四大组件的考察会结合 ANR(四大组件是否都会产生 ANR、时间是多少等)、进程优先级、启动模式 等等一起问。网上的面经和题库命中概率还是蛮高的,大部分题目都似曾相识,毕竟 Android 常用知识点也就这些。当然不要因此掉以轻心,优秀的面试官是会针对细节深入挖掘的,所以不止要“知道”,还要“理解和掌握”

另一块是计算机网络、计算机原理等。对客户端开发来说,计算机网络的考察会比较多,TCP 和 UDP 的区别、TCP 的拥塞控制、TCP 的握手与挥手流程、HTTP 与 HTTPS 的差别等等。基本面的所有公司都问到这块了

**这块需要特别注意的点就是你的覆盖面是否足够,因为不同公司的不同部门的不同面试官都可能会有不同的提问姿势。**你不完整系统得把基础过一遍,真不能保证你能信心十足(一两个问题被问倒其实没什么,但能不被问倒更好不是)。

我可以举几个例子,比如在问大图加载时顺口问一下“同一个文件,放到 drawable 目录下和放到 SD 卡中,加载到内存时内存占用一样么” (这里涉及到了 Bitmap decode 时的过程以及 Bitmap 内存占用的计算,比如 HashMap put 方法调用时内部的流程是怎样(方法内部的流程、HashMap 的扩容等,比如 Http 1.1 和 2.0 的特点和区别 —— 这些例子都是我或者我朋友真实碰到的面试题,在没经过充分的面试准备之前,你能答出多少呢

2.3 技术原理

一般这类问题是在问基础题时顺势往底层问,或者是你自己在回答时顺便带出来,比如屏幕绘制原理、几种动画的原理、布局加载原理等等,是体现个人的技术深度的。

我觉得这类题目不是死记硬背可以解决的,作为面试官,自然有办法考察出你是“了解”还是“理解”。

其实系统地复习这些内容本身也是挺有趣的,你会很容易发现技术背后的实现存在深层的联系。所以这块不只是面试题那么简单,它也是我们以后往“资深开发者”走的一个方向。

**回答这类问题,主动比被动更好。**一般面试官问你很基础的问题时,你当然可以惜字如金只回答对应的答案,但假如你能主动扩展到原理层面、甚至隐晦地表示你看过源码,要我是面试官也会喜欢你(斜眼笑)。

2.4 项目介绍

我一开始也没有经验,面爱奇艺时让我介绍项目我就简单介绍了下项目需求是怎样,可以看出面试官并不满意。后面专门向一个牛逼的前同事请教了这个,他的建议是注意项目细节准备,保持自信!后面面其他家时,果然感觉轻松了一些。

####2.4.1 在面试前准备项目描述,别害怕,因为面试官什么都不知道

面试官拿到我们的简历的时候,是没法核实你的项目细节的(一般公司会到录用后,用背景调查的方式来核实)。更何况,我们做的项目是以月为单位算的,而面试官最多用30分钟来从我们的简历上了解项目经验,我们对项目的熟悉程度要远远超过面试官,所以大可不用紧张。如果我们的工作经验比面试官还丰富的话,甚至还可以控制整个面试流程。

既然面试官无法了解我们的底细,那么他们怎么来验证我们的项目经验和技术?下面总结了一些常用的提问方式。

2.4.2准备项目的各种细节,一旦被问倒了,就说明我们没做过

一般来说,在面试前,大家应当准备项目描述的说辞,自信些,因为这部分我们自己说了算,流利些,因为我们在经过充分准备后,可以知道自己要说些什么。而且这些是基于我们实际的项目经验,那么一旦让面试官感觉我们都说不上来,那么可信度就很低了。

不少人是拘泥于“项目里做了什么业务,以及代码实现的细节”,这就相当于把后续提问权直接交给面试官。下表列出了一些不好的回答方式。

在避免上述不好的回答的同时,大家可以按下表所给出的要素准备项目介绍。

面试前,我们一定要准备,一定要有自信,但也要避免如下的一些情况。

##三、阿里钉钉面经(已拿offer
阿里钉钉一面(面试时长80min

1.自我介绍,对自己项目的介绍,架构图呈现
2.因为说自己以后的发展方向是音视频,所以问了我用过哪些现有框架
3.项目中的一些优化问题,MVC -> MVP,Handler的内存泄漏情况分析等,对MVP和MVVM的理解。
4.项目中的第三方库选择的问题,因为简历中写了我对第三方库选择的问题,比如选ObjectBox和greenDao的问题,图片加载框架问题
5.HashMap和HashTable,引申ConCurrentHashmap的深入,version1.7和1,8的区别,以及高并发下HashMap发生的问题
四大启动模式,以及场景对应
6.Handler的机制介绍,不存在消息时的IdleHandler的运作机制,为什么不能在子线程初始化问题
7.设计模式中的单例介绍,使用场景(Okhttp的Seesion存储等等,在线编写
快排算法
8.OkHttp的源码分析,及整体架构的流程图绘制
9.四大组件的完整介绍,及深入,答了IntentService、LocalBroadcast
10.四大引用的问题和MVP框架相结合进行回答
11.网络中的响应码对大体进行回答,具体回答了200、404、500、304等
12.View绘制流程问题,如何不使用xml,来实现中间位置的定位
13.事件分发机制流程讲解,以及如何实现单击事件和长按事件的判定
14.关于为什么选用mqtt协议的问题,优势,原理等等(没答上来,只说针对性做过测压,以及oceanlink和mqtt的对比
阿里钉钉二面(面试时长30min

1.自我介绍,优缺点的,以及未来希望的发展方向
2.目整体介绍,如何做到分压啊之类的问题
3.如果给我阿里、腾讯、头条、谷歌的offer的一个选择(不掺杂地域性的问题,首先直接否定了google我就的一个企业的商业模式进行分析。
我对钉钉这个产品的理解,我的回答是就的是钉钉前身的对标项目微信,已经后期转型的商业模式作出的分析,最后给出的我的结论是一个企业性质的办公软件
4.给出了钉钉一个mac平台的关于共享屏幕的耗CPU的问题
5.让我提问,提的是关于音视频发展方向的问题,具体是一个发展空间。
阿里钉钉三面(面试时长60min

1.自我介绍呗,还是一样,项目介绍,项目的优缺点对比
2.对MVC和MVP的理解,还有Handler的内存泄漏问题具体是什么,解决方案知道有什么,空数据的时候Handler的阻塞问题,但是我还是没在Looper的源码中找到,这里让我好好再看一下。
3.另外为什么使用MVP,他的优势是什么,内存泄漏是什么样的。
4.http的长连接和短连接这两个概念,怎么去理解。我把它理解为持久化连接是什么,然后对http的3个版本的主要区别做一个介绍
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号