阿里暑期实习面经(已OC)

一面到HR面:2.25 - 3.31

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

体验

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

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

面试总时长:36分钟

面试方式:电话

面试部门:C2M事业部

  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分钟

面试方式:电话

面试部门:C2M事业部

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

  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. 面试结果会通知嘛?怎么通知?

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

=> 中间有两次面试,因为面太多…没记下来。找人查了一下,说前面在一个部门的三轮技术面已经通过了的,但不知道为啥就挂了。然后又有一个部门捞我,又进行了新一轮面试

阿里暑期实习一面面经(2021年3月22日晚上8点)

体验

问的挺明白,聊人生也挺多。

面试总时长:51分钟

面试方式:电话

面试部门:C2M事业部

  1. 自我面试
  2. 除了你提到的成就,还有别的嘛?
  3. 有专利嘛?有论文嘛?
  4. 除了你提高点项目,还做过其他的嘛?
  5. 你们开发团队多少人啊?
  6. 项目开发了多久?你们在里面的职责
  7. SpringCloud用到了哪些?
  8. 看过SpringCloud框架里组件的源码嘛?说说你懂的
  9. 注册中心有什么用?服务于服务之间怎么调用的?
  10. RPC是基于什么协议?与Http有什么区别呢?
  11. 除了上述你说的分布式中间件有没有了解过别的呢?
  12. Dubbo了解到什么程度?
  13. 数据库使用的什么?什么版本?什么存储引擎?为什么要用这个?
  14. MySQL使用过程中遇到过哪些问题?怎么解决的?
  15. 索引了解多少?有做过优化嘛?你觉得使用时需要注意哪些?
  16. 说说你对SQL调优的理解
  17. 你们团队你怎么分工的啊?你们有没有专门的DBA?(本科…大三…我去哪找啊…)
  18. CRUD:分页的SQL怎么写?(他说我写的SQL性能不好,还可以优化,拉胯了)
  19. 场景题:只需要考虑增删改查,如何写SQL能最高性能的在一个表中删10000行数据?(这回真拉胯了)
  20. 你现在在哪?在干嘛?
  21. 你在海康实习多久了?什么时候结束?
  22. 部门业务是啥?你主要负责啥呢?
  23. 你觉得你就完成任务就可以了吗?不去关注下生产线和具体落地等等东西吗?
  24. 什么学的Java?学多久了?怎么学的?
  25. Java集合应该比较了解了吧,说说HashMap和ConcurrentHashMap的区别
  26. ConcurentHashMap怎么实现线程安全的?
  27. 它俩结构上是相同的嘛?底层数据结构?
  28. 那你说说HashMap底层数据结构吧
  29. HashMap默认容量是多少
  30. HashMap什么时候下会扩容?
  31. Java并发编程你应该用过吧,说说你知道的工具类
  32. 创建线程池是不是要初始化五个参数,它是五个参数吗?
  33. 你介绍下线程池每个参数及作用
  34. 线程池执行原理和详细流程
  35. 线程池的拒绝策略有哪些?
  36. 怎么实现一个自定义拒绝策略?
  37. 阻塞队列知道哪些,说下特点
  38. 创建线程池为什么不用Executors?会产生什么问题?
  39. 看来你对这些源码看的还挺深啊。那你怎么不去看看SpringCloud和Redis源码啊(我???)
  40. Redis数据类型说说,在项目中用了哪些
  41. Redis怎么实现分布式锁
  42. (开始聊人生)你在大学期间,最有成就感的一件事是什么?
  43. 在大学期间,最失败或者最遗憾的一件事又是什么?
  44. 在做项目过程中,团队有没有产生什么分歧?最后怎么协调的?
  45. 为什么会发起这个项目?什么初衷?
  46. 你平时是怎么学习一个新技术的?
  47. 博客有多少篇文章,都是原创嘛?
  48. 最近在看什么书

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