阿里巴巴春招面试总结

4月10日 阿里天猫部门技术一面(42分钟)

面试问题

  1. 简单的自我介绍(1分30秒)
  2. 讲一下做的这个Java Web的项目(2分钟)
  3. 解释一下超卖的场景(4分钟)
  4. Redis最终是以什么方式实现的,讲一下原理(1分钟)
  5. 只用Java来做同步的话能达到Redis一样的效果吗(呆了很久)
  6. synchronized其实是一种悲观锁的机制,除此之外还有其他锁的方式吗(居然没有答上来显式锁Lock)
  7. 这个项目最终有上线吗(没有企业资质)
  8. 前后端交互用的是什么(RestFul,Json)
  9. Get和Post有什么差异(语义,数据库,安全,长度限制)
  10. 有没有更加安全的交互方式(HTTPS)
  11. HTTPS与HTTP的差别(加分点)
  12. 如果你的应用忽然无法上线了,你会从那几个方面去排查(加分点)
  13. 怎么判断服务器卡死(dns解析,top命令查看资源,查看tcp网络状态)
  14. 实际中有用过软件进行排查吗(并没有)
  15. 如何理解JVM的内存模型(加分点)
  16. Java Web的应用是如何部署的(Linux + Nginx + Tomcat)
  17. Tomcat里面部署了两个War包,有两个类名称一样,会不会冲突(丢分点)
  18. 解释一下双亲委派机制(加分点)
  19. 回到刚才的问题,Tomcat如何解决加载冲突的问题(每个War包实现自己的类加载器)
  20. 数据库的索引,为什么索引查询会快一点(不是很好)
  21. 数据库的最左匹配原则(丢分点)
  22. 很长的字符串,从中统计出重复的数据,并且排序(不是很完善,还答错了一点,丢分点)

提问环节

  • 部门详细的业务开发(天猫双十一会场的数据支持,天猫营销技术)
  • 对我的建议是什么(在实践上有所欠缺,算法方面要做更加深入的了解)

总结:

  • 缺点:一直呃呃呃的,听上去很紧张,说话不利索
  • 优点:对懂的知识点讲的有理有据,能说出优缺点背景和实际使用场景

4月16日 阿里天猫部门技术二面(74分钟)

面试问题

天猫营销技术部门的老师

  1. 自我介绍一下,介绍一下最近的项目(自我介绍1分半,项目介绍3分钟,加分点)
  2. 设计一个读写频率差异比较大的系统,会如何去设计?(主从分离,读写分离的思想,回答的有理有据,加分点)
  3. 缓存和数据库的同步问题以及一致性问题?(确认了一下问题后换了个问题)
  4. 主从数据库之间的同步机制(讲了Redis的全同步和部分同步的机制,加分点)
  5. 数据库中写的频率很高怎么办?(横向扩展加服务器,纵向扩展分表)
  6. 单台服务器的写上面还有什么可以继续优化? (副本的合并上应该有什么机制->应该提到合并读操作,或者是copyonwrite的思想,失分点)
  7. 一致性哈希能不能解释一下?(有理有据,加分点)
  8. spark和hadoop有了解吗?(说明上一问回答的不错,但是这个不会)
  9. 你对检索这块有多少了解?设计一个商品检索的引擎?只做精准匹配(确认问题的时候对面也答不上,换了个问题)
  10. 什么是哈希?汉字字符串如何做hash(hashcode先匹配,再对字符本身匹配,有点懵逼)
  11. 为什么用hashcode去做索引而不是直接拿字符串做索引?hash的实现方式有哪几种?(面试官提醒不要从语言上去解释,而是从数据结构上去分析)
  12. hashmap的查询复杂度是多少?数据结构如何实现?(这个背熟了,加分点)
  13. 关键性数据库的sql语句?inner join 与outer join的区别,以及left join与right join(懵逼,不会,失分点)
  14. 亿万级别的数存在若干个文件中,查询出最小的N个数?
  15. 给一堆词(亿万),先统计出词频,再进行排序?(提醒数字和词不一样,其实是要先求出hashcode,再进一步处理)
  16. 要考虑内存,要考虑字符串所占空间太大,要考虑分离数据后合并
  17. jvm的内存分配以及GC机制?(条理清晰,内容丰富,加分点)
  18. 概率论问题:54张牌分成三堆,大小王都在某一堆的概率有多少?(没有答上来,丢人)
  19. 帽子问题:从矮到高排成一队,高的人可以看到矮的人的帽子颜色,帽子颜色只有白黑两种,每个人只能说黑或者白一种,问如何设计策略使得报对帽子的人数最多,最多是几个(假设一共有N个)?(说出来建模成二进制的思路,但是没有回答上来,丢人)

提问环节

  • 部门对于暑期实习生的培养方案是怎么样的(会干正式的事情并且是主要的事情)
  • 部门所做的工作是(天猫营销平台,日常的营销还是活动的营销,主要做高并发的应用)
  • 之后会用到比较新的语言比如Go语言吗?(中台是用C++搞定的,应用开发用Java,暂时不会用其他语言,但不排除可能性)
  • 有女票嘛?实习时间多久?什么时候毕业?能来杭州吗?(跪舔ing)

总结

  • 面试的问题基本是围绕一个大问题慢慢展开的,所以要把握好对问题的引导,不要说一些自己不擅长的技术名词
  • 对于问题的回答逻辑相较于面试腾讯的时候有所提升,但是还可以进一步改进
  • 遇到不会的问题不要马上回避,可以尝试一下说一下基本的思路,答案不是最重要的,敢于解决面对问题的勇气和思路是最重要的
  • 数学基础忘的也太多了吧,两道题都没有做出来,之后可以整理归类一下
  • 整个面试过程保持乐观积极的态度,不会就不会,可以适当傻笑一下缓解气氛(???)

4月18日 阿里天猫部门Boss三面(19分钟)

面试问题

  1. 简单介绍一下自己?(1分半)
  2. 挑一个最近的项目讲一下?(5分半,加分点)
  3. 讲一下WebSocket,讲一连接过程?(面试管想问的是WebSocket底层是如何用tcp实现的,我回答的不在点上,失分点)
  4. 有了解过多线程嘛?(面试官没多问)
  5. 统计字符串中出现的次数,然后根据次数排序(失分点,在回答map结构的排序时出错了,最后桶排强行续命)

提问环节

  • 有幸进入阿里的话,会接触到什么样的业务呢?(实际开发的业务)
  • 阿里的面试流程是怎么样的呢?(接下里可能还有交叉面和HR面)
  • 对我有什么学习上的建议吗?(广度和深度都要考虑到)

总结:

  • 提问环节中,对面老师回答问题后最好有个回应,不要嗯嗯嗯就没了
  • boss面一般不问技术细节了,主要是问开放式的问题,考个解决思路
  • 对于算法基础还要在暑假恶补一下

4月22日 阿里其他部门交叉四面(12分钟)

面试问题

  • 简单介绍下自己?(1分半,有点紧张)
  • 将一下最近做的项目?(6分半,有点紧张)

提问环节

  • 请问您是什么BU的?(傻,明明知道是交叉面)
  • 阿里巴巴对实习生的培养方案是怎么样的?(不同部门不同。。。)
  • 对于实习生和在校生有什么建议吗,或者你们看着学生的那些品质呢?(不是看掌握了什么,而是看未来能做什么)

总结:

对于项目的清晰介绍以及对自己项目的难点分析解决思路很重要,就算项目很low,是那种做烂了的商城项目,是做做CRUD的开发,只要把思路,原理,背景,优缺点,方案对比说清楚,那就是可以的

4月23日 阿里天猫部门HR五面(12分钟)

面试问题

  1. 确认了简历信息
  2. 从本科到硕士期间的学科变化的原因?硕士期间的学科和发布的论文(之前有准备过,OK)
  3. 两年的无人机学习的产出是什么?知识层面或者是paper?(知识层面,开发性题目,封闭性题目,性格改变)
  4. 有没有专利什么的保护你们的创意?(大四下写了篇专利)
  5. 三个同学按照贡献度的话如何排名?客观的评价一下(实践能力,创意,团队沟通上去分析)
  6. 东南大学这边是考研还是保研?研究方向是怎么选的?(准备过,OKOK)
  7. 介绍一下中国研究生数模竞赛(面试官说只看过美国建模大赛???瞧不起我?)
  8. 开放问题里面有提到看了很多计算机类的书籍,能介绍下如何学习这些知识的嘛?(带着问题去看书,及时做检查反馈)
  9. 学习的过程中有没有和专业的人PK过,或者是同院系的同学?(有啊!)
  10. 老家是哪里的?(浙江人,No Problem)
  11. 如果来实习的话,什么时候能过来?(6月呗)

提问环节

  • 结果什么时候能知道呢?(每周五下午)
  • 阿里实习的转正比例高吗?(按照社招的流程来了,希望实习生都拿到offer,转正概率非常高)

总结:

  • HR面字字诛心,问了很多直击心灵的问题,但是只要回答的有逻辑,体现出自己的思考在里面,实话实说就好了,也不用刻意回避某些问题