阿里巴巴面经记分享

本文只对面试过程分享,至于简历编写、具体重点知识复习等不做讨论

一、面试情况

笔者一共经历了4轮面试,其中:

  • 一面(电话技术面)
  • 二面(电话技术面)
  • 三面(视频技术面)
  • 四面 (技术总监+HR交叉视频面)

阿里的流程相对而言较慢,需要足够的耐心才行!

二、面试题

部分已经遗忘,请谅解!

一面

  1. 讲一下你最有印象的项目(代表性),过程中会穿插一些子问题;
  2. java wait api: 在main函数中 调用string.wait()会出现什么情况,为什么?
  3. java nio知识
  4. linux条件变量
  5. 操作系统相关命令是否熟悉,进程间管道通讯
  6. http GET POST DELETE 方法含义,PUTPOST区别(幂等 | 非幂等)
  7. 网络层协议:tcp&udphttps 握手过程? 如何防攻击的
  8. 算法:堆排序实现、两个超大文件求交集
  9. 手机来电显示的推销黑名单是如何实现的?

二面

  1. 根据简历上做过的项目发问。 e.g: 为什么要自定义实现ImageLoaderLruCache 实现原理;LinkeHashMap 是如何保证有序的?Bitmap#recycle到底释放了啥? Handler原理,Looper#loop之后,消息是如何插入到消息队列的?
  2. 组件化解耦 如何实现的?
  3. 进程保活机制,谈了下 Jobscheduler 。根据现有的方案如何更加优雅实现保活(不流氓)
  4. 长连接这块有积累吗?
  5. 网络库是如何封装的,实现了哪些功能
  6. Http缓存,实际项目中用到的缓存策略
  7. 内存泄漏,java 几种引用方式,jvm 内存模型,java堆和java栈的区别,程序计数器有多少个?
  8. 进程间通信?Android为什么用Binder
  9. 美团的walle实现原理
  10. Arouter原理
  11. Tinker热修复,为什么选择Tinker, 热修复基础原理
  12. Activity Window View 三者之间关系
  13. EventBus 原理
  14. 混合式开发,jsjava互调 ,了解哪些混合式开发框架,RN的优缺点

三面

重点挖掘所做项目本身,这里就不一一列举了

  1. 对所做项目深入挖掘进行提问 e.g jenkins
  2. 热修复原理:类加载方案、底层替换方案、Instant Run方案
  3. 新技术、新动态的了解情况
  4. 一致性hash算法原理
  5. 数据结构:动态规划 实现整数序列的最大连续子序列问题
  6. 团队的一个情况介绍,组内 意见不一致,如何解决的?

四面

  1. 总监:也会考察项目本身、沟通能力、解决问题能力
  2. HR面:(不过多阐述)

以上的一些面试题,仅供参考,每个人情况不同,所问的肯定也不一样!!!

三、总结

面试前的准备

  • 纵向深入、横向拓展。除了Android专业方向外,时下的热门技术(e.g 混合式跨平台框架 ....)也需要关注、学习,保持一个拥抱变化,客观看待、接纳的心态;计算机原理、网络,操作系统也需要关注,这些基础学科还是很重要的,关于这点很多人持有不同看法,这里笔者搬运一个小马哥演讲视频 ,详细戳我
  • 抛弃掉一口吃成大胖子的思想。部分面试者想尽可能多的把一些知识点复习完,其实这不太可能实现,所以心态要摆正!
  • 简历上的项目需要重点关注
  • 模拟面试,可以找一些信得过的小伙伴进行一次“演练”;视个人情况而定
  • 小试牛刀。大部分面试者都会找一些小公司“练练手”找找感觉,然后再去自己心仪那家面试。司空见惯,值得一试!

面试后的体会

  • 心态很重要,偶尔紧张怎么办?正常现象,即使面试失败,就当作一次学习的经历罢了!
  • 不要轻易说“不知道”(前提:一知半解的问题)。尽可能把你所了解的表述出来,有些面试官可能会引导你去思考。实在不懂得就主动去请教
  • 尽可能的主动,除了回答好问题本身,也可以适当对知识面进行拓展
  • 适当表达出你想加入贵公司的意愿

鄙人的一些挫见,如有不到之处,望道友海涵

猜你喜欢

转载自juejin.im/post/5c3ca21df265da615304fb8f