【面小易-面经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向你招手!

相关文章
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
71 2
|
22天前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
54 14
|
1月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
|
24天前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
35 8
|
27天前
|
Java 编译器 程序员
Java面试高频题:用最优解法算出2乘以8!
本文探讨了面试中一个看似简单的数学问题——如何高效计算2×8。从直接使用乘法、位运算优化、编译器优化、加法实现到大整数场景下的处理,全面解析了不同方法的原理和适用场景,帮助读者深入理解计算效率优化的重要性。
30 6
|
7天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
37 6
|
22天前
|
设计模式 Java 开发者
Java多线程编程的陷阱与解决方案####
本文深入探讨了Java多线程编程中常见的问题及其解决策略。通过分析竞态条件、死锁、活锁等典型场景,并结合代码示例和实用技巧,帮助开发者有效避免这些陷阱,提升并发程序的稳定性和性能。 ####
|
20天前
|
存储 监控 小程序
Java中的线程池优化实践####
本文深入探讨了Java中线程池的工作原理,分析了常见的线程池类型及其适用场景,并通过实际案例展示了如何根据应用需求进行线程池的优化配置。文章首先介绍了线程池的基本概念和核心参数,随后详细阐述了几种常见的线程池实现(如FixedThreadPool、CachedThreadPool、ScheduledThreadPool等)的特点及使用场景。接着,通过一个电商系统订单处理的实际案例,分析了线程池参数设置不当导致的性能问题,并提出了相应的优化策略。最终,总结了线程池优化的最佳实践,旨在帮助开发者更好地利用Java线程池提升应用性能和稳定性。 ####
|
22天前
|
缓存 Java 开发者
Java多线程编程的陷阱与最佳实践####
本文深入探讨了Java多线程编程中常见的陷阱,如竞态条件、死锁和内存一致性错误,并提供了实用的避免策略。通过分析典型错误案例,本文旨在帮助开发者更好地理解和掌握多线程环境下的编程技巧,从而提升并发程序的稳定性和性能。 ####
|
16天前
|
安全 算法 Java
Java多线程编程中的陷阱与最佳实践####
本文探讨了Java多线程编程中常见的陷阱,并介绍了如何通过最佳实践来避免这些问题。我们将从基础概念入手,逐步深入到具体的代码示例,帮助开发者更好地理解和应用多线程技术。无论是初学者还是有经验的开发者,都能从中获得有价值的见解和建议。 ####
下一篇
DataWorks