阿里实习面经

一天接了三个阿里的电话,面了两轮,顶不住顶不住

白天

阿里暑期实习提前批面经(2021年2月25日上午10点)

体验

面试官人挺好的,整个过程挺耐心听我讲并且还会和我一起分析,一次很有收获的面试经历。

给了我很多学习的建议,除了基于使用层面,更多去了解一些底层的原理,这样对以后的开发和学习会带来很多好处

面试总时长:36分钟

面试方式:电话

面试部门:淘系技术部

  1. 现在大几了,是春招还是实习?
  2. 接触编程有多久了?
  3. 接触Java多久了?
  4. 那你在大学课堂中学了哪些课程?
  5. 自我介绍
  6. 来聊聊你描述的项目,你在这个项目中担任的职责是?
  7. 这个项目的整个架构、构思、开发、测试是几个人完成的?
  8. 项目是部署在远端Linux上嘛?现在还在运行嘛?
  9. 用的啥服务器呀?多少台服务器?这个工作是你做还是团队有负责运维的?(肯定说阿里云了)
  10. 我看你在项目中使用了非关系型数据库Redis,你能说说具体怎么用的嘛?(√)
  11. 部署了几个节点?你弄的嘛?(√)
  12. 主节点的信息如何同步到从节点?你能说说具体过程嘛?(×)
  13. SpringBoot项目打包成jar的工作原理能说说嘛?详细一点(×)
  14. @Resource和@Autowired的区别(√)
  15. 加问了为什么?看没看过它俩的源码(×)
  16. Spring事务(×)
  17. TCP三次握手的详细过程说一下吧(√)
  18. 三次握手的目的是干嘛?传输数据嘛?还是什么?(半√,说了一点点…)
  19. 你知道TCP拥塞控制算法嘛?(×)
  20. 平时用过哪些Java集合?(√)
  21. ArrayList和LinkedList的区别(√)
  22. HashMap你了解嘛?简单说说?(√)
  23. 你应该知道HashMap存储的键值对都是无序的吧,我现在想要HashMap要有序,用哪个集合类?(√,LinkedHashMap继承了HashMap,在HashMap结构之上使用双向链表实现的)
  24. HashMap线程安全嘛?(√)
  25. 多线程你了解吧,使用JUC下哪个工具类可以解决HashMap线程不安全的问题?(√)
  26. 那你能说说ConcurrentHashMap具体怎么实现线程安全的呢?(√,jdk1.7、1.8)
  27. 还有没有用过JUC包下其他工具类具体应到你项目开发中?能说说嘛
  28. 你知道现在jdk最新版本到了什么版本嘛?(×)
  29. 泛型知道吧?Java是怎么实现泛型的?(×,前几天还看了,又忘了)
  30. 你平时开发是在Windows上还是linux上?(这是什么鬼…)
  31. 唉,你在学校学过数据结构和算法嘛?有哪些你觉得高阶一点的?简单说说(数组、链表、二叉树,我都不好意思说…)
  32. 那你知道索引是借助什么数据结构实现的嘛?介绍下(√)
  33. 为什么要用B+树,而不用hash、二叉查找树呢?(√)
  34. 这些你们学校课程教了吗?还是自学的?(√,自学)
  35. 看你学过数据库概论,你们学校这个课有没有讲事务、索引、优化?(…我说讲了数据库三范式、怎么写sql、基础语法,难一点的也就七种JOIN了)
  36. 那你自己了解了这些嘛?说说数据库事务吧(√)
  37. 事务的隔离级别(√)
  38. 读取已提交和可重复读的区别(√)
  39. 隔离级别可重复度,mysql是怎么实现的?用什么算法?(×,懵逼了??什么算法??心里脑子打转,不是MVCC??)

反问:

您能给我什么好的建议呢?

  1. 对Java的很多东西,你可以学更深一些
  2. 对框架,不用停留在使用层面。用完要想想为啥是这样的?要追求底层源码实现,有好奇心
  3. 然后一些基础知识要好好准备,比如计算机网络、操作系统等

感触

阿里确实与其他公司很不一样,很有特点。更多的是问为什么,问底层源码,而不是背的那点八股文,感谢这次经历!

晚上

=> 2月25号晚上8点半,正准备抠脚洗漱睡觉,突如其来的杭州电话,我以为是约面试时间,结果是直接面!连忙摸爬带滚的跑到电脑前

阿里暑期实习提前批面经(2021年2月25日晚上8点)

体验

这应该是我遇到的最好最棒的面试官了吧!!!一开始有点紧张,因为啥也没准备也没提前约,直接就面,所以他就跟我聊天了几分钟天,慢慢的在闲聊中进入面试的

因为我的项目是微信小程序,所以面试官在打电话给我前提前去体验了我的项目,感动!!

最后结束给了我很多学习的建议和一些经验,非常客气的指出我的不足和可以改进的地方

面试总时长:37分钟

面试方式:电话

面试部门:不清楚

小插曲:因为家里正好下大雨,刚开始没带耳机没听清。我这到底是二面还是另一个部门的一面,所以面试部门也不清楚

  1. 我们先来聊聊天,通过看你的简历,在校期间肯定是非常的丰富,你能总结性的分享一下你的整个大学嘛?

  2. 你能说一个非常值得你珍惜的经历嘛?

  3. 你在校担任了竞赛负责人和项目负责人,能说说负责人期间的一些主要工作经历和感受嘛?

  4. 当在写项目过程中,遇到技术问题或者项目其他问题时,你会怎么解决呢?能举个例子嘛?

  5. 开始聊项目,刚刚提前体验了你写的微信小程序项目,这个项目你在这其中担任什么样的角色呢?

  6. 在负责人期间,怎么去保证开发项目过程中高效的进行呢?

  7. 聊了项目具体的一个业务模块,问了一些业务和技术上的问题,然后也提了一些功能优化方面的建议

  8. (开始进入真正的面试了…)在项目中使用了分布式中间件Redis,为什么会考虑使用它呢?

  9. 在什么具体业务场景下使用了?

  10. Redis作为缓存在项目中使用,会遇到什么问题呢?(√)

  11. 你了解缓存雪崩、缓存穿透和击穿嘛?怎么解决的?(√)

  12. 在我说出解决方案后,继续往下延伸的去探讨了一种场景(×,没有说出非常合理的解决方案,在面试官的提示和引领下补充说了说)

  13. 你了解布隆过滤器?介绍下原理,还有为什么这么设计?(×,不提前充分准备的话,时间真来不及,脑子还在尝试组织语言,面试官就开口了)

  14. 问一个更细节的问题,布隆过滤器返回的结果有概率不够准确,那我说两种说法你觉得哪个对?一:布隆过滤器某个元素没有时,那这个元素一定没有 二:布隆过滤器某个元素有时,那这个元素一定有 (√,选一,这个还是知道的)

  15. 根据你的简历,熟悉多线程,那我问一些关于多线程的东西吧!说说你对线程池的认识(√)

  16. 你平时使用时,线程池怎么创建的?(√,最好注意,这里有个坑!我回答的应该还算可以)

    我说在课余时间看过《阿里巴巴开发手册规范》里面有一条强调了,禁止使用Executors创建线程池,应该使用ThreadPoolExecutors类创建,其目的是为了规避资源耗尽的风险

  17. 相信你也是看过一些源码,那为什么不允许示使用Excutors去创建呢?会造成什么弊端?(×,这里回答的真是服了我的语文水平(难怪高考语文不及格),组织语言能力极差hhh意思我懂,就是说的糊里糊涂的,内容不简短,语义不明确)

  18. 你知道线程池创建的几个重要参数吗?详细说说(√)

  19. 说下线程池底层的工作原理吧。(√)

  20. 好!说到这里,我们再回到问题17,这回能说清楚了吧?根据源码,Excutors创建线程池会创建大量的不必要的工作线程,从而导致OOM。其实挺容易的,我也能get到你意思,只是你说的没有关联性(这就是我为什么超级喜欢面试官的地方了!!!)

  21. 看到你的成绩非常优秀,那你在学校的课程中自认为学的最好的课程是什么?(这就看自己哪学的好,当然就说哪了,千万别给自己埋坑!!)

    我说了数据结构和算法,其实我应该说数据库概论的,这样接下来就会问MySQL。我其实还没有准备计网和操作系统的东西,所以没说这些课

  22. 那我们聊点简单的吧,缓解下紧张的气氛。排序算法你了解哪些呢?详细说说它们的实现和时间复杂度吧(√)

  23. 你说你平时快排用的比较多是吧?那快排采用的什么思想实现的?(√)

  24. 分治思想怎么在快排中体现的呢?详细说说(×,又是因为我牛逼的表达能力…哭了,导致面试官觉得我这部分并不熟练…其实如果动手写代码的话,我还挺有把握的)

反问:

  1. 您能给我什么好的建议呢?

  2. 面试结果会通知嘛?怎么通知?

    然后问了我现在本人在哪,说应该不会叫你来杭州现场面试,毕竟成本太高。后续的安排继续保持电话畅通就可以了

你可能感兴趣的:(面试经历,面试,java)