一面到HR面:2.25 - 3.31
阿里暑期实习提前批面经(2021年2月25日上午10点)
体验
面试官人挺好的,整个过程挺耐心听我讲并且还会和我一起分析,一次很有收获的面试经历。
给了我很多学习的建议,除了基于使用层面,更多去了解一些底层的原理,这样对以后的开发和学习会带来很多好处
面试总时长:36分钟
面试方式:电话
面试部门:XXX事业部
- 现在大几了,是春招还是实习?
- 接触编程有多久了?
- 接触Java多久了?
- 那你在大学课堂中学了哪些课程?
- 自我介绍
- 来聊聊你描述的项目,你在这个项目中担任的职责是?
- 这个项目的整个架构、构思、开发、测试是几个人完成的?
- 项目是部署在远端Linux上嘛?现在还在运行嘛?
- 用的啥服务器呀?多少台服务器?这个工作是你做还是团队有负责运维的?(肯定说阿里云了)
- 我看你在项目中使用了非关系型数据库Redis,你能说说具体怎么用的嘛?(√)
- 部署了几个节点?你弄的嘛?(√)
- 主节点的信息如何同步到从节点?你能说说具体过程嘛?(×)
- SpringBoot项目打包成jar的工作原理能说说嘛?详细一点(×)
- @Resource和@Autowired的区别(√)
- 加问了为什么?看没看过它俩的源码(×)
- Spring事务(×)
- TCP三次握手的详细过程说一下吧(√)
- 三次握手的目的是干嘛?传输数据嘛?还是什么?(半√,说了一点点…)
- 你知道TCP拥塞控制算法嘛?(×)
- 平时用过哪些Java集合?(√)
- ArrayList和LinkedList的区别(√)
- HashMap你了解嘛?简单说说?(√)
- 你应该知道HashMap存储的键值对都是无序的吧,我现在想要HashMap要有序,用哪个集合类?(√,LinkedHashMap继承了HashMap,在HashMap结构之上使用双向链表实现的)
- HashMap线程安全嘛?(√)
- 多线程你了解吧,使用JUC下哪个工具类可以解决HashMap线程不安全的问题?(√)
- 那你能说说ConcurrentHashMap具体怎么实现线程安全的呢?(√,jdk1.7、1.8)
- 还有没有用过JUC包下其他工具类具体应到你项目开发中?能说说嘛
- 你知道现在jdk最新版本到了什么版本嘛?(×)
- 泛型知道吧?Java是怎么实现泛型的?(×,前几天还看了,又忘了)
- 你平时开发是在Windows上还是linux上?(这是什么鬼…)
- 唉,你在学校学过数据结构和算法嘛?有哪些你觉得高阶一点的?简单说说(数组、链表、二叉树,我都不好意思说…)
- 那你知道索引是借助什么数据结构实现的嘛?介绍下(√)
- 为什么要用B+树,而不用hash、二叉查找树呢?(√)
- 这些你们学校课程教了吗?还是自学的?(√,自学)
- 看你学过数据库概论,你们学校这个课有没有讲事务、索引、优化?(…我说讲了数据库三范式、怎么写sql、基础语法,难一点的也就七种JOIN了)
- 那你自己了解了这些嘛?说说数据库事务吧(√)
- 事务的隔离级别(√)
- 读取已提交和可重复读的区别(√)
- 隔离级别可重复度,mysql是怎么实现的?用什么算法?(×,懵逼了??什么算法??心里脑子打转,不是MVCC??)
反问:
您能给我什么好的建议呢?
- 对Java的很多东西,你可以学更深一些
- 对框架,不用停留在使用层面。用完要想想为啥是这样的?要追求底层源码实现,有好奇心
- 然后一些基础知识要好好准备,比如计算机网络、操作系统等
感触
阿里确实与其他公司很不一样,很有特点。更多的是问为什么,问底层源码,而不是背的那点八股文,感谢这次经历!
=> 2月25号晚上8点半,正准备抠脚洗漱睡觉,突如其来的杭州电话,我以为是约面试时间,结果是直接面!连忙摸爬带滚的跑到电脑前
阿里暑期实习提前批面经(2021年2月25日晚上8点)
体验
这应该是我遇到的最好最棒的面试官了吧!!!一开始有点紧张,因为啥也没准备也没提前约,直接就面,所以他就跟我聊天了几分钟天,慢慢的在闲聊中进入面试的
因为我的项目是微信小程序,所以面试官在打电话给我前提前去体验了我的项目,感动!!
最后结束给了我很多学习的建议和一些经验,非常客气的指出我的不足和可以改进的地方
面试总时长:37分钟
面试方式:电话
面试部门:XXX事业部
小插曲:因为家里正好下大雨,刚开始没带耳机没听清。我这到底是二面还是另一个部门的一面,所以面试部门也不清楚
-
我们先来聊聊天,通过看你的简历,在校期间肯定是非常的丰富,你能总结性的分享一下你的整个大学嘛?
-
你能说一个非常值得你珍惜的经历嘛?
-
你在校担任了竞赛负责人和项目负责人,能说说负责人期间的一些主要工作经历和感受嘛?
-
当在写项目过程中,遇到技术问题或者项目其他问题时,你会怎么解决呢?能举个例子嘛?
-
开始聊项目,刚刚提前体验了你写的微信小程序项目,这个项目你在这其中担任什么样的角色呢?
-
在负责人期间,怎么去保证开发项目过程中高效的进行呢?
-
聊了项目具体的一个业务模块,问了一些业务和技术上的问题,然后也提了一些功能优化方面的建议
-
(开始进入真正的面试了…)在项目中使用了分布式中间件Redis,为什么会考虑使用它呢?
-
在什么具体业务场景下使用了?
-
Redis作为缓存在项目中使用,会遇到什么问题呢?(√)
-
你了解缓存雪崩、缓存穿透和击穿嘛?怎么解决的?(√)
-
在我说出解决方案后,继续往下延伸的去探讨了一种场景(×,没有说出非常合理的解决方案,在面试官的提示和引领下补充说了说)
-
你了解布隆过滤器?介绍下原理,还有为什么这么设计?(×,不提前充分准备的话,时间真来不及,脑子还在尝试组织语言,面试官就开口了)
-
问一个更细节的问题,布隆过滤器返回的结果有概率不够准确,那我说两种说法你觉得哪个对?一:布隆过滤器某个元素没有时,那这个元素一定没有 二:布隆过滤器某个元素有时,那这个元素一定有 (√,选一,这个还是知道的)
-
根据你的简历,熟悉多线程,那我问一些关于多线程的东西吧!说说你对线程池的认识(√)
-
你平时使用时,线程池怎么创建的?(√,**最好注意,这里有个坑!**我回答的应该还算可以)
我说在课余时间看过《阿里巴巴开发手册规范》里面有一条强调了,禁止使用Executors创建线程池,应该使用ThreadPoolExecutors类创建,其目的是为了规避资源耗尽的风险
-
相信你也是看过一些源码,那为什么不允许示使用Excutors去创建呢?会造成什么弊端?(×,这里回答的真是服了我的语文水平(难怪高考语文不及格),组织语言能力极差hhh意思我懂,就是说的糊里糊涂的,内容不简短,语义不明确)
-
你知道线程池创建的几个重要参数吗?详细说说(√)
-
说下线程池底层的工作原理吧。(√)
-
好!说到这里,我们再回到问题17,这回能说清楚了吧?根据源码,Excutors创建线程池会创建大量的不必要的工作线程,从而导致OOM。其实挺容易的,我也能get到你意思,只是你说的没有关联性(这就是我为什么超级喜欢面试官的地方了!!!)
-
看到你的成绩非常优秀,那你在学校的课程中自认为学的最好的课程是什么?(这就看自己哪学的好,当然就说哪了,千万别给自己埋坑!!)
我说了数据结构和算法,其实我应该说数据库概论的,这样接下来就会问MySQL。我其实还没有准备计网和操作系统的东西,所以没说这些课
-
那我们聊点简单的吧,缓解下紧张的气氛。排序算法你了解哪些呢?详细说说它们的实现和时间复杂度吧(√)
-
你说你平时快排用的比较多是吧?那快排采用的什么思想实现的?(√)
-
分治思想怎么在快排中体现的呢?详细说说(×,又是因为我牛逼的表达能力…哭了,导致面试官觉得我这部分并不熟练…其实如果动手写代码的话,我还挺有把握的)
反问:
您能给我什么好的建议呢?
面试结果会通知嘛?怎么通知?
然后问了我现在本人在哪,说应该不会叫你来杭州现场面试,毕竟成本太高。后续的安排继续保持电话畅通就可以了
=> 中间有两次面试,因为面太多…没记下来。接下来是大老板终面
阿里暑期实习一面面经(2021年3月22日晚上8点)
体验
问的挺明白,聊人生也挺多。
面试总时长:51分钟
面试方式:电话
面试部门:XXX事业部
- 自我面试
- 除了你提到的成就,还有别的嘛?
- 有专利嘛?有论文嘛?
- 除了你提高点项目,还做过其他的嘛?
- 你们开发团队多少人啊?
- 项目开发了多久?你们在里面的职责
- SpringCloud用到了哪些?
- 看过SpringCloud框架里组件的源码嘛?说说你懂的
- 注册中心有什么用?服务于服务之间怎么调用的?
- RPC是基于什么协议?与Http有什么区别呢?
- 除了上述你说的分布式中间件有没有了解过别的呢?
- Dubbo了解到什么程度?
- 数据库使用的什么?什么版本?什么存储引擎?为什么要用这个?
- MySQL使用过程中遇到过哪些问题?怎么解决的?
- 索引了解多少?有做过优化嘛?你觉得使用时需要注意哪些?
- 说说你对SQL调优的理解
- 你们团队你怎么分工的啊?你们有没有专门的DBA?(本科…大三…我去哪找啊…)
- CRUD:分页的SQL怎么写?(他说我写的SQL性能不好,还可以优化,拉胯了)
- 场景题:只需要考虑增删改查,如何写SQL能最高性能的在一个表中删10000行数据?(这回真拉胯了)
- 你现在在哪?在干嘛?
- 你在海康实习多久了?什么时候结束?
- 部门业务是啥?你主要负责啥呢?
- 你觉得你就完成任务就可以了吗?不去关注下生产线和具体落地等等东西吗?
- 什么学的Java?学多久了?怎么学的?
- Java集合应该比较了解了吧,说说HashMap和ConcurrentHashMap的区别
- ConcurentHashMap怎么实现线程安全的?
- 它俩结构上是相同的嘛?底层数据结构?
- 那你说说HashMap底层数据结构吧
- HashMap默认容量是多少
- HashMap什么时候下会扩容?
- Java并发编程你应该用过吧,说说你知道的工具类
- 创建线程池是不是要初始化五个参数,它是五个参数吗?
- 你介绍下线程池每个参数及作用
- 线程池执行原理和详细流程
- 线程池的拒绝策略有哪些?
- 怎么实现一个自定义拒绝策略?
- 阻塞队列知道哪些,说下特点
- 创建线程池为什么不用Executors?会产生什么问题?
- 看来你对这些源码看的还挺深啊。那你怎么不去看看SpringCloud和Redis源码啊(我???)
- Redis数据类型说说,在项目中用了哪些
- Redis怎么实现分布式锁
- (开始聊人生)你在大学期间,最有成就感的一件事是什么?
- 在大学期间,最失败或者最遗憾的一件事又是什么?
- 在做项目过程中,团队有没有产生什么分歧?最后怎么协调的?
- 为什么会发起这个项目?什么初衷?
- 你平时是怎么学习一个新技术的?
- 博客有多少篇文章,都是原创嘛?
- 最近在看什么书