【面小易-面经05】阿里巴巴信息平台事业部Java研发社招面试总结

简介: 又到了“金九银十”的招聘季,各位小伙伴们是不是也在忙着准备面试呢找工作呢?在接下来的一段时间里,面小易会为大家分享各种面试经验哦!请持续关注我。今天要和大家分享的是投递阿里巴巴信息平台事业部Java研发同学的面试经验,在文章中为大家介绍了他的阿里巴巴三面之路。

7月9日 19:00-21:30 阿里云开发者社区首场“Offer 5000”直播开启!15位团队技术大牛在线招人,更有《阿里云技术面试红宝书》助你拿下Offer!
图片无法显
点击图片或戳我查看详情和投简历


“我是面小易,机智又聪明。面试不眨眼,Offer不手软。”

我面小易又来啦,今天要和大家一起分享的是一位面试阿里巴巴信息平台事业部Java研发的同学的面试经历,虽然他最终还是没能够拿到Offer,但是他已经通过面试看到了自己的不足之处,回头看我们自己,是否也有很多需要进一步学习的东西呢?

以下为正文

一面(电话面)

在第一次面试中主要针对于之前所做的项目询问了一些细节。Java方面的问题则提问了Servelt的生命周期,线程的状态,加密算法(非对称,对称,MD5)以及数据库事务ACID四大特性。

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

面小易说:这位同学在第一面时觉得比较简单,虽然问的大部分都是一些基础,但是这也能够看出一个人的底层知识是否足够扎实。因此,无论面试阿里巴巴的什么岗位,对于这个岗位所需要的底层知识一定要足够扎实,这样才能在面试时发挥的游刃有余。

二面(电话面)

在第二次面试中,面试官问到了Java的内存模型(原子性,有序性,可见性),线程池工作原理,JVM的垃圾回收机制,内存溢出解决方案,Spring AOP实现方式。还问了我使用过哪些ORM框架,有一次问到了数据库事务的四大特性,还问了注解处理器,以及对于RPC框架的了解。此外,还问了Java中集合的层次,比如Map是不是集合框架的成员,HashMap、Hashtable、ConcurrentHashMap的区别,同步器实现机制,原子类底层机制(cas, Unsafe)以及快排实现方式。

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

面小易说:通过这位同学的叙述也能够看出,在第二次面试中,他回答问题所用的时间太多了,导致后续面试官还有很多问题没有问。这可能是针对于每一个问题面试者的回答不够精炼造成的,因此各位小伙伴们一定要注意,即使对于一个问题你有非常深厚的理解,也不能侃侃而谈,需要精炼,把最为核心的内容,你最想要表达的内容以及面试官最希望听到的内容回答出来就好,一定不能过于啰嗦而没有任何主旨。

三面(视频面)

第三次面试中,面试官上来先聊了会家常,比如哪里人、年龄、学校专业、有没有女朋友,为什么做Java等。聊完这些开场,就开始问一些相关的技术问题了,主要问了ES的检索机制(query-then-fetch),其次还针对于一些具体的场景设定问了更多的问题,面试官问如果现在要搜一个词,按相关度排序,如何获取排名在(100-120)之间的文档,针对于“用户打车付款-滴滴后台-支付宝后台”设计一个一致性处理方案,此外还问了数据库事务特性以及隔离级别等。

在第三次面试中,最后一个问题没有回答上来,可能也是因为自己没有这方面的经验。三面安排在了二面后的第一天,也就是说一二三面连着来的。本来觉得与面试官聊的挺好,最后还是挂在这面上了,两个星期后收到了收到了阿里巴巴的拒信。

面小易说:能够看出,这位同学所经历的三面更加贴近于实际的业务场景,面试官想要考察面试者在真实场景下的技术思考能力和技术沉淀。另外需要大家注意的是虽然可能是在三面之后被拒掉的,但是并不一定只是三面的原因,因为还需要综合前几次面试的结果哦!

总结

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

后记

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

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

在现在的公司,我逐渐意识到我所做的工作没有太多的技术含量可言(一开始进来时,开发工作经验少,能学到一些东西),技术成长的空间比较少,我必须要做些改变了,我很难想象继续呆在这里工作两三年后的样子,那不是我想要成为的我。我裸辞了,尽管这时我还没有找好工作,但是辞职是无法避免的,我喜欢遵循自己的内心。

也就是这段时间,我偶然看到一个工作机会,信息平台事业部-(全球服务创新)Java-3月深圳专场,我知道我的知识水平,工作经验可能还有所不足,但是不试试,你永远不知道自己还有哪些不足,你离目标还有多远,我毅然决然地投递了简历。幸运的是,我接到了面试通知。尽管面试失败了,我还是收获了很多,让我感觉我与阿里并不是那么遥远。重整旗鼓,未来再战。

面小易说:从后记中能够看出,这个同学自己有想法、有目标、有勇气,并且也有脚踏实地的拼搏精神,虽然在面试的时候能力还达不到阿里巴巴所要的那么优秀,但是只要不放弃努力,那就没有什么是不可能的。诸君也一起加油吧!总有一个Offer向你招手!

相关文章
|
8月前
|
算法 Java
50道java集合面试题
50道 java 集合面试题
|
10月前
|
Java 数据库连接 数据库
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
本文全面总结了Java核心知识点,涵盖基础语法、面向对象、集合框架、并发编程、网络编程及主流框架如Spring生态、MyBatis等,结合JVM原理与性能优化技巧,并通过一个学生信息管理系统的实战案例,帮助你快速掌握Java开发技能,适合Java学习与面试准备。
432 2
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
|
8月前
|
算法 Java
50道java基础面试题
50道java基础面试题
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
406 4
|
算法 Java 数据中心
探讨面试常见问题雪花算法、时钟回拨问题,java中优雅的实现方式
【10月更文挑战第2天】在大数据量系统中,分布式ID生成是一个关键问题。为了保证在分布式环境下生成的ID唯一、有序且高效,业界提出了多种解决方案,其中雪花算法(Snowflake Algorithm)是一种广泛应用的分布式ID生成算法。本文将详细介绍雪花算法的原理、实现及其处理时钟回拨问题的方法,并提供Java代码示例。
2502 2
|
XML 存储 JSON
【IO面试题 六】、 除了Java自带的序列化之外,你还了解哪些序列化工具?
除了Java自带的序列化,常见的序列化工具还包括JSON(如jackson、gson、fastjson)、Protobuf、Thrift和Avro,各具特点,适用于不同的应用场景和性能需求。