阿里巴巴面试心得

一面(电话面):

  • 项目细节
  • servelt生命周期
  • 线程的状态
  • 加密算法(非对称,对称,md5)
  • 数据库事务四大特性

    其他的记不清了,都比较简单基础,只要基础扎实,应该都不是问题,耗时40分钟左右。

二面(电话面)

  • java内存模型(原子性,有序性,可见性)
  • 线程池工作原理
  • 垃圾回收机制
  • 内存溢出解决方案
  • Spring aop 实现方式
  • orm框架用过哪些
  • 数据库事务四大特性
  • 注解处理器
  • rpc框架
  • 集合类层次,Map是不是集合框架的成员
  • HashMap, Hashtable, ConcurrentHashMap的区别
  • 同步器实现机制
  • 原子类底层机制(cas, Unsafe)
  • 快排实现方式

    问的比较多,范围又比较广,可能我回答的时候用的时间比较多,耗时90分钟左右。面试官最后都说,时间不多了,好多还没问,我都有点不好意思了。此次面试是一面后的第一天打过来的,面试时间挺紧凑的。

三面(视频面)

  • Es的检索机制(query-then-fetch)
  • 如果现在要搜一个词,按相关度排序,如何获取排名在(100-120)之间的文档
  • 一致性处理方案(用户打的付款-滴滴后台-支付宝后台)
  • 数据库事务特性,隔离级别

    面试官先唠下家常,哪里人啊,有没有女朋友啊,年龄啊,什么学校什么专业啊,怎么搞java这行啊。唠的差不多了,就上面的问答了,第三个问题没有答出来,也是因为没有这方面的经验。这面是二面后的第一天面的,也就是说一二三面是连续三天的。感觉与面试官聊的挺好,最后还是挂在这面上了,两个星期后收到了收到了阿里巴巴的拒信。

总结

打铁还需自身硬,虽然现在无从得知面试失败的真正直接原因,但是有一点可以是确定的,我并不是他们招聘的那些面试者里最优秀的人(后者前N优秀的人)。 与面试官的交谈中可以了解到,他们真的很看重面试者的基础能力,还有就是对框架的理解,对源码的解读,是否对开源项目做过贡献(提交一些代码),如果在某一方面有深入的探索和经验,那就更有优势了。


后记

阿里工作一直是我的一个追求目标,本人2016年毕业于一所普通的211广东高校,非计算机科班专业(自动化专业),大学学习生活也是平平淡淡,波澜不惊。大三快结束时,才逐渐意识到就业压力、社会竞争的残酷性。因为编程是我在大学里学的相对较好的科目,身边的同学也有一部分朝着这个方向努力学习,争取找到合适的工作。沉思良久之后,我也选择了程序员这条路,选择了java开发,期待以后有机会能去阿里巴巴工作。

毕业前,并没有找到心仪的工作,只是找到了一家普通的做安防产业的公司做Javaweb开发(当然,我知道这是我自身实力不足的原因)。毕业后到现在近1年半左右的时间,除了完成公司安排的工作,业余时间也稍微地充些电,通过自学来提升自己。可是我并没有找准方向,找准目标,学过一段安卓,学过一会nodejs,也会过scala和python,只不过都是浅尝辄止。在这条路上,我扪心自问至少到目前为止,我并没有尽了我最大的能力去充实自己,尽可能地提升自己的社会竞争力。

在现在的公司,我逐渐意识到我所做的工作没有太多的技术含量可言(一开始进来时,开发工作经验少,能学到一些东西),技术成长的空间比较少,我必须要做些改变了,我很难想象继续呆在这里工作两三年后的样子,那不是我想要成为的我。我裸辞了,尽管这时我还没有找好工作,但是辞职是无法避免的,我喜欢遵循自己的内心。也就是这段时间,我在Boss直聘上,偶然看到一个工作机会,信息平台事业部-(全球服务创新)Java-3月深圳专场,我知道我的知识水平,工作经验可能还有所不足,但是不试试,你永远不知道自己还有哪些不足,你离目标还有多远,我毅然决然地投递了简历。幸运的是,我接到了面试通知。

尽管面试失败了,我还是收获了很多,让我感觉我与阿里并不是那么遥远。重整旗鼓,半年后再投,在这半年里,我要:

  • 阅读开源框架的源码(spring,mybatis)
  • 研究学习 分布式缓存, ngnix, redis, memcached,zookeeper
  • 夯实基础 深入理解计算机原理, 算法(第三版), 深入浅出mysql
  • 继续深耕 elsaticseach, kafka

你可能感兴趣的:(面试)