阿里的前端一直以来都是大热之选,上周一位朋友面进蚂蚁定级P6,总包60W,给大家要来了他的真实面经,接下来把他的全程面经以文字的形式分享给大家

面试过程:

6月初通过阿里工作的同学进行内推,当天收到面试邀约,一个多月完成三轮技术面试、一轮hr面试,收到了offer,总包60W。

下边是他5轮面试的部分考题可以针对性的找找相关资料学习,另外分享一下完整的阿里Android面试考点总结,希望能够帮助到计划冲大厂的小伙伴。

蚂蚁3轮技术面+HR面

一面(1h)

1、自我介绍

2、问项目的一些细节,优化方案等

3、SurfaceView, TextureView及View的区别。SurfaceView怎么控制它处于的层级

4、Binder工作流程

5、介绍一下MVC,MVP,MVVM,你们项目用的是哪个?

6、对组件化的理解,你们是怎么实现组件化的?功能模块之间互相引用会有什么问题?

7、内存优化工具,LeakCanary和MAT的原理

8、JVM内存模型

9、Java同步机制有哪些,volatile和syncronized区别

10、HashMap和HashTable区别,ConcurrentHashMap分段加锁的原理

11、二叉树的前中后遍历

12、算法:判断一棵树是否是平衡二叉树

13、算法题:给定一个链表L1、L2,每个元素是为10以内的正整数,链表表示一个数字,表头为高位。 求两个链表之差,以链表形式返回

14、Java和Kotlin的一些区别,Kotlin的缺点?

15、SurfaceView和TextureView的区别?、了解过哪些插件化的实现?

16、说说ARouter的原理

17、两个业务组件模块之间,怎么实现相互调用接口?

18、让你设计一个下载功能,实现多个大文件同时下载,考虑哪些(断点续传)?

19、怎么处理内存泄漏?强引用弱引用?LeakCanary原理说一下。

二面(1h)

1、问更熟悉Java还是Kotlin,答Java,所以问的都是Java相关的一些题

2、HashMap扩容机制

3、Java volatile原理和作用

4、乐观锁,悲观锁区别

5、线程池工作原理,各个参数的作用

6、Android 三缓存是什么?为什么需要它

7、讲讲做的业务开发中比较有挑战的项目

8、还有一些比较常规的Android方面的问题,具体想不起来了

9、算法题:查找单链表中倒数第k个节点。做完后面试官问是不是刷过这道题,那我再出一道吧… 题:给定一台8核的手机,设计一个快速检索出sdcard下所有文件名为a的程序,返回一个列表

三面(1.5h)

1、主要深挖项目细节,有些不太清楚的最好别提,不然被挖到了很尴尬

2、平时怎么学习技术

3、在之前的公司,你对自己的成长满意吗

4、在面哪些公司,情况怎么样

HR面

1、你为什么要离开现在的公司

2、你们公司的岗位等级是怎么评定的,你现在是什么岗位等级

3、谈谈你在公司的绩效情况

4、你觉得你做的最有成就感的一件事

5、你一般解决问题的方法有哪些

6、你是因为什么契机选择做Android

7、你有对你所在的公司做过什么流程或制度规范上的改进么

8、你最近在看什么书,和工作相关么,你为什么要看这些书

9、你期望的薪资待遇是多少

几点面试意见:

1、心态放平稳,假设第一题你答不上来很正常,面试官不会因为第一题你不会就PASS你

2、不会的题目一定不要瞎猜,往往面试官给你挖的坑就是希望你往错的方向猜,一定要答不知道

3、不要说太多跟当前面试题无关的内容,问你什么问题尽量就答什么问题,除非面试官指定你发散一下思维

4、如果没有听懂面试题可以试着询问面试官,您要问的是关于xxx的问题么

5、对于某些问题一定要自己先提前精炼一下(例如activity启动流程、handler原理等问题)

6、如果面试官问的某项技术自己在某些场景使用过或看到别的场景有使用,可结合这些场景进行讲解(让面试官知道你不仅仅理解它,你还会很好的使用它)

7、如果是某个框架希望可以深入源码或者至少理解一些别人的源码分析

8、如果面试阿里那么面试之前一定要好好准备这样一个问题:你觉得你最擅长什么

9、面试一定要真诚,切勿投机取巧

10、面试态度一定要谦虚

总结

我也不是什么大佬,最后唠叨几句。希望各位没拿到offer的真的不要灰心,可能你之前所有的失败都是你成功的垫脚石,我面头条一面挂的时候也曾经自闭过,但更多的是反思,如何调整自己的复习计划。在复习的时候一定要有自己的强项,能把这个知识点理解的很透彻并且把相关的知识点拓展出去。另一方面就是让面试官看到你对这个岗位的热情,能够自发性地去学习与岗位相关的东西。

那么如何才能让我们在面试中对答如流呢?

答案当然是平时在工作或者学习中多提升自身实力的啦

而且面试涉及的技术点可不知这么一点,我们需要学习的还多着呢。其实不管怎么样,不论是什么样的大小面试,要想不被面试官虐的不要不要的,只有刷爆面试题题做好全面的准备,当然除了这个还需要在平时把自己的基础打扎实,这样不论面试官怎么样一个知识点里往死里凿,你也能应付如流啊~

对此我针对Android程序员,我这边给大家整理了一套学习宝典!有需要的朋友可以点击下方课程链接领取~

https://edu.51cto.com/course/32703.html

首先是详细的不能再详细学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

7月最新入职阿里Android开发的真实面经_Android

接下来就是需要梳理知识,提升储备了!(Android八大模块进阶资料)

  • 架构师筑基必备技能:深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO
  • Android高级UI与FrameWork源码:高级UI晋升+Framework内核解析+Android组件内核+数据持久化
  • 360°全方面性能调优:设计思想与代码质量优化+程序性能优化+开发效率优化
  • 解读开源框架设计思想:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack
  • NDK模块开发:NDK基础知识体系+底层图片处理+音视频开发
  • 微信小程序:小程序介绍+UI开发+API操作+微信对接
  • Flutter:Flutter入门+Flutter进阶
  • Kotlin: Kotlin入门教程 +Kotlin 实战避坑指南 +项目实战《Kotlin Jetpack 实战》

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

7月最新入职阿里Android开发的真实面经_Kotlin_02

然后再是通过源码来系统性地学习

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

7月最新入职阿里Android开发的真实面经_Java_03

刷大厂面试题备战,增加大厂通过率

历时半年,整理了这份市面上最全面的安卓面试题解析大全。

可以通过目录索引直接翻看需要的知识点,查漏补缺。

7月最新入职阿里Android开发的真实面经_Kotlin_04