阿里的前端一直以来都是大热之选,上周一位朋友面进蚂蚁定级P6,总包60W,给大家要来了他的真实面经,接下来把他的全程面经以文字的形式分享给大家,全程肝货建议下载收藏(文末附送一份大厂Android面试题PDF)。
面试过程:
10月初通过阿里工作的同学进行内推,当天收到面试邀约,一个多月完成三轮技术面试、一轮hr面试,收到了offer,总包60W。
下边是他5轮面试的部分考题可以针对性的找找相关资料学习,另外分享一下完整的阿里Android面试考点总结(有PDF版在文末分享给大家),希望能够帮助到计划冲大厂的小伙伴。
蚂蚁3轮技术面+HR面
一面(1h)
- 自我介绍
- 问项目的一些细节,优化方案等
- SurfaceView, TextureView及View的区别。SurfaceView怎么控制它处于的层级
- Binder工作流程
- 介绍一下MVC,MVP,MVVM,你们项目用的是哪个?
- 对组件化的理解,你们是怎么实现组件化的?功能模块之间互相引用会有什么问题?
- 内存优化工具,LeakCanary和MAT的原理
- JVM内存模型
- Java同步机制有哪些,volatile和syncronized区别
- HashMap和HashTable区别,ConcurrentHashMap分段加锁的原理
- 二叉树的前中后遍历
- 算法:判断一棵树是否是平衡二叉树
- 算法题:给定一个链表L1、L2,每个元素是为10以内的正整数,链表表示一个数字,表头为高位。 求两个链表之差,以链表形式返回
- Java和Kotlin的一些区别,Kotlin的缺点?
- SurfaceView和TextureView的区别?
- 了解过哪些插件化的实现?
- 说说ARouter的原理
- 两个业务组件模块之间,怎么实现相互调用接口?
- 让你设计一个下载功能,实现多个大文件同时下载,考虑哪些(断点续传)?
- 怎么处理内存泄漏?强引用弱引用?LeakCanary原理说一下。
二面(1h)
- 问更熟悉Java还是Kotlin,答Java,所以问的都是Java相关的一些题
- HashMap扩容机制
- Java volatile原理和作用
- 乐观锁,悲观锁区别
- 线程池工作原理,各个参数的作用
- Android 三缓存是什么?为什么需要它
- 讲讲做的业务开发中比较有挑战的项目
- 还有一些比较常规的Android方面的问题,具体想不起来了
- 算法题:查找单链表中倒数第k个节点。做完后面试官问是不是刷过这道题,那我再出一道吧...
- 题:给定一台8核的手机,设计一个快速检索出sdcard下所有文件名为a的程序,返回一个列表
三面(1.5h)
- 主要深挖项目细节,有些不太清楚的最好别提,不然被挖到了很尴尬
- 平时怎么学习技术
- 在之前的公司,你对自己的成长满意吗
- 在面哪些公司,情况怎么样
HR面
- 你为什么要离开现在的公司
- 你们公司的岗位等级是怎么评定的,你现在是什么岗位等级
- 谈谈你在公司的绩效情况
- 你觉得你做的最有成就感的一件事
- 你一般解决问题的方法有哪些
- 你是因为什么契机选择做Android
- 你有对你所在的公司做过什么流程或制度规范上的改进么
- 你最近在看什么书,和工作相关么,你为什么要看这些书
- 你期望的薪资待遇是多少
几点面试意见:
- 心态放平稳,假设第一题你答不上来很正常,面试官不会因为第一题你不会就PASS你
- 不会的题目一定不要瞎猜,往往面试官给你挖的坑就是希望你往错的方向猜,一定要答不知道
- 不要说太多跟当前面试题无关的内容,问你什么问题尽量就答什么问题,除非面试官指定你发散一下思维
- 如果没有听懂面试题可以试着询问面试官,您要问的是关于xxx的问题么
- 对于某些问题一定要自己先提前精炼一下(例如activity启动流程、handler原理等问题)
- 如果面试官问的某项技术自己在某些场景使用过或看到别的场景有使用,可结合这些场景进行讲解(让面试官知道你不仅仅理解它,你还会很好的使用它)
- 如果是某个框架希望可以深入源码或者至少理解一些别人的源码分析
- 如果面试阿里那么面试之前一定要好好准备这样一个问题:你觉得你最擅长什么
- 面试一定要真诚,切勿投机取巧
- 面试态度一定要谦虚
总结
我也不是什么大佬,最后唠叨几句。希望各位没拿到offer的真的不要灰心,可能你之前所有的失败都是你成功的垫脚石,我面头条一面挂的时候也曾经自闭过,但更多的是反思,如何调整自己的复习计划。在复习的时候一定要有自己的强项,能把这个知识点理解的很透彻并且把相关的知识点拓展出去。另一方面就是让面试官看到你对这个岗位的热情,能够自发性地去学习与岗位相关的东西。
网友评论