【面小易-面经08】菜鸟网络Java研发工程师面试经验(社招)

简介: 7月9日 19:00-21:30 阿里云开发者社区首场“Offer 5000”直播开启!15位团队技术大牛在线招人,更有《阿里云技术面试红宝书》助你拿下Offer!马上投递简历:https://developer.aliyun.com/special/offerday01

图片无法显
点击图片或戳我查看详情和投简历
“我是面小易,机智又聪明。面试不眨眼,Offer不手软。”

我面小易又来啦,今天要和大家一起分享的是一位面试菜鸟网络的Java研发工程师的面试经验,他通过了前三次电话面试,但是在第四次现场面试中没有能够成功通过,最终遗憾地与菜鸟的Offer说再见。但是正如这位同学自己说的“面试道路上最大的收获就是我要搞明白我是怎么失败的”,这件事情很重要,也希望大家能够从他的经历中吸取经验和教训。

以下为正文

前言

2019年2月中旬的时候,我在招聘软件上无意间看到了阿里巴巴菜鸟网络的招聘信息,现在的部门已经有两名同学被蚂蚁金服录取了,自己就不服气的也想试试。这次面试其实并没有准备充分,之前就听说总共有很多轮数,不仅会考察基础知识的深度,也会考察算法能力、项目设计能力、价值观世界观等。自己抱着能走多远走多远的态度,挑战一下自己。

面小易说:作为面试者,我们都应该有和这位同学一样的精神,在面试中能走多远就走多远,挑战自己。当然,在这只之前一定要拼尽全力做好准备,以最好的姿态迎接面试的考验。

一面

在发过去简历的一周后,大概是2月28号左右,一面的小哥哥下午打来电话约我2月28号晚上9点钟面试。结果在2月29白天的时候,我基本上都没有怎么工作,而是把我平时积累的一些基础知识总结了一下,能总结多深就总结深。到了晚上9点左右,电话响了起来。

面试官还是比较温柔的,上来先让我做了自我介绍,我简单介绍了一下自己有2年半的工作经验,之前做过什么项目,用了什么技术等等,面试官没有详细问项目的细节,但是项目的具体的功能和业务一定要讲清楚。中间穿插着会问到一些基础知识。总共面试了50多分钟,Java基础能问的基本都问完了,基本的内容包括:
1、从JVM到垃圾回收,最后一个问题好像是fullgc是否可以回收方法区
2、从线程池的构造函数参数到队列的拒绝策略
3、Redis支持的数据类型到跳跃表,Redis同步策略,如何自己实现LRU等
4、MySQL索引的数据结构,为什么用B+树不用B树,事务隔离级别,聚集锁非聚集锁,这个地方着重点一下,问到了一个非常细节的问题,如何用可重复读的隔离级别避免幻读问题。当时这个问题没有答出来,后来上网查了后可以使用间隙锁来实现。
5、Spring相关、bean的生命周期等,最后问到循环引用问题Spring如何处理的。
6、concurrentHashmap 1.8为什么放弃了分段锁
7、数据库分库分表相关

其他的记不清了,就记得只要是跟Java基础相关的基本都提到了,个人感觉一面还是以知识的广度为主。

面小易说:和之前为大家分享的面试经验差不多,一面基本都是比较偏重于基础知识,可能广度比较大,但是深度不一定很高,这部分会着重测试面试者的知识面是否足够广。

二面

一面结束大概一周多后,大概在3月3号,接到了二面的电话,由于当时在地铁上太吵了,我就约了3月5号晚上8点半面试。到了3月4号5号的白天,又是基本上没有怎么工作,都在总结面试的东西,到了3月5号晚上晚上8点半,二面电话如期响了起来。

二面上来也是做了一个简单的自我介绍,然后简单介绍了自己的项目,感觉二面和一面最大的不同是,二面时候以知识的深度和解决问题的能力为主。主要涉及到的问题大概有:
1、 Spring AOP的原理,动态代理是怎么实现的,这个地方我基本上把动态代理的源码说了一遍。
2、fullgc的时候会导致接口的响应速度特别慢,该如何排查和解决。
3、SNMP协议的相关知识
4、Netty的相关知识,如何避免的NIO空循环问题,还有零拷贝等
5、问了一些简单的算法,说了一下自己的思路

剩下的记不清了,大概面了有40分钟多一点。二面面完个人感觉还是非常好的,当时也比较自信自己可以进入三面,果然在大概一周左右,如期接到了三面的电话。

面小易说:能够看出,这位同学所经历的第二轮面试和第一轮涉及到的问题有一低昂相似之处,比如在一面中问到了Spring相关的一些简单知识,而在二面中就问到Spring更加深层次的问题了,涉及AOP的原理以及动态代理的源码,也可以看出面试的技术问题的深度在逐渐加强。

三面

三面的面试官也是比较温柔的,三面和前两面最大的不同是这次的面试官特别关注项目的实现和细节,由于我最近一年做的是一个监控系统,从最开始的项目为什么要分这几个模块到每个模块做的事情用的技术和存在的意义,都需要解释的非常清楚,中间如果他有疑问的话就会立马打断来问问题,现在做的项目其实并没有太多的亮点。面试中间还提到了Kafka的Replicas的作用还有他为什么比其他的消息队列好等等。最后给了我一个微博评论长链接短链接的问题,让我设计一个服务来处理长链接短链接,包括怎么读怎么存等。面完三面后,面试官告诉我如果有四面的话,四面就要来杭州面了,当时心情十分复杂。

面小易说:在这位同学的三面中,主要涉及的就是之前所做的项目,通过对于项目的提问,就能够看出一些有实际工作经验的开发工程师是否有自己的见解和思考。因此,我们在积累项目经验的同时,一定要更多地了解细节,也要多思考为什么,换做自己的是技术决策者是否会做相同的决定。

四面

大概三面结束又过了一周后,接到了HR的电话约我3月22号周五上午11点半到杭州菜鸟总部参加面试。提前一天给现公司请了假后,22号早上5点半就起床去虹桥火车站了,大概10点的时候到的菜鸟总部,随便吃了点东西,打印了两份简历,等到11点半准时联系的HR。HR把我带到会议室中,路上我还大概了解了一下面试后面的流程,说这次第四面是两名P8的面试官一起面的,如果这轮能过的话,下一轮就是最终P9大Boss和HR一起了。大概在会议室等了5分钟左右,两名面试官来了,也是简单做了自我介绍后,这两名面试官就让我在白板上画最近负责的项目的流程图,个人感觉这一轮面试着重点是项目设计上,中间会穿插很多问题来问我为什么当初要这样设计?这样设计的好处是什么?有没有更好的设计方式?项目的数据量有多大?如果再增大100倍呢?碰到的真正的难题是什么?这两位面试官面了大概一个小时。

四面面试结束后,让我在会议室等结果,当时心里真是度秒如年啊,大概这两位面试官和HR讨论了20分钟后,HR进来告诉我说不好意思这一轮面试没有通过,今天的面试流程就此结束了。

其实四面就发生在昨天,心里说不难过肯定是骗人的,这一个月以来每一轮都是煎熬啊,我觉得第四轮挂掉肯定是有很多原因的,自己的项目设计能力太差了,在分析项目的时候很多种情况没有考虑到,估计面试官对我设计的思路不满意是我最大的减分项。

面小易说:很遗憾这位同学最终止步于第四次面试,和校招的要求不同。因为这位同学参加的是社招,并且已经有了实际大量的工作经验,因此对于项目的思考一定要刚出校门的同学们要更加深厚。特别是对于阿里巴巴、菜鸟这样体量的业务而言,高并发、分布式的问题会无限地放大,如何解决这些问题都是阿里巴巴工程师们所真实需要面对的。

总结

不管怎么说,生活还要继续,有些东西没有第二次机会,我觉得面试道路上最大的收获就是我要搞明白我是怎么失败的。接下来我的打算是在好好干好手头工作的同时,要做好这三件事情:
1、Zookeeper和Netty的书好好看完
2、算法要补一补了,开始刷Leetcode
3、项目设计方面做一个单独的培训,找一个大神先聊一聊,或者博客大神能否给一些建议,这一块确实是我的短板。

另外,我要特别感谢两个朋友,一个是前同事K,他现在是阿里云的P7同学,在这一个月里他一直在告诉我应该如何跟阿里面试官沟通,要注意哪些知识点等,还一直在帮我关注着面试流程。第二个要感谢的朋友是现同事GH,很难过他下周就要去蚂蚁了,在这一个月的时间里GH一直在鼓励我加油面试,在我准备面试的工作日里,他也一直在帮我解决一些我头上的棘手问题。最后我想给自己说的是,失败并不可怕,可怕的是不知道自己为何失败。祝有和我相同经历的朋友们也不要被失败打败,希望我们都可以脚下有风、各自灿烂!

面小易说:虽然这位同学最终没有能够成功拿到菜鸟网络的Offer,但是这一路走来想必他自己也收获了很多,知道了自己哪里有所欠缺,这其实是最重要的。因为未来还有更多的机会,这次失去了,下次再拿回来就好。也希望大家能够如同这位同学最后所说的一样,不要被失败打败,希望我们都可以脚下有风、各自灿烂!

相关文章
|
25天前
|
缓存 Java 关系型数据库
【Java面试题汇总】ElasticSearch篇(2023版)
倒排索引、MySQL和ES一致性、ES近实时、ES集群的节点、分片、搭建、脑裂、调优。
【Java面试题汇总】ElasticSearch篇(2023版)
|
25天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
207 37
|
25天前
|
设计模式 安全 算法
【Java面试题汇总】设计模式篇(2023版)
谈谈你对设计模式的理解、七大原则、单例模式、工厂模式、代理模式、模板模式、观察者模式、JDK中用到的设计模式、Spring中用到的设计模式
【Java面试题汇总】设计模式篇(2023版)
|
25天前
|
存储 关系型数据库 MySQL
【Java面试题汇总】MySQL数据库篇(2023版)
聚簇索引和非聚簇索引、索引的底层数据结构、B树和B+树、MySQL为什么不用红黑树而用B+树、数据库引擎有哪些、InnoDB的MVCC、乐观锁和悲观锁、ACID、事务隔离级别、MySQL主从同步、MySQL调优
【Java面试题汇总】MySQL数据库篇(2023版)
|
25天前
|
存储 缓存 NoSQL
【Java面试题汇总】Redis篇(2023版)
Redis的数据类型、zset底层实现、持久化策略、分布式锁、缓存穿透、击穿、雪崩的区别、双写一致性、主从同步机制、单线程架构、高可用、缓存淘汰策略、Redis事务是否满足ACID、如何排查Redis中的慢查询
【Java面试题汇总】Redis篇(2023版)
|
25天前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
13天前
|
消息中间件 NoSQL Java
Java知识要点及面试题
该文档涵盖Java后端开发的关键知识点,包括Java基础、JVM、多线程、MySQL、Redis、Spring框架、Spring Cloud、Kafka及分布式系统设计。针对每个主题,文档列举了重要概念及面试常问问题,帮助读者全面掌握相关技术并准备面试。例如,Java基础部分涉及面向对象编程、数据类型、异常处理等;JVM部分则讲解内存结构、类加载机制及垃圾回收算法。此外,还介绍了多线程的生命周期、同步机制及线程池使用,数据库设计与优化,以及分布式系统中的微服务、RPC调用和负载均衡等。
|
4天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第34天】在数字化时代,网络安全与信息安全的重要性日益凸显。本文将探讨网络安全漏洞、加密技术以及安全意识等关键方面,旨在提升读者对网络安全防护的认识和理解。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调培养良好的安全意识的必要性,本文旨在为读者提供实用的知识和建议,以应对日益复杂的网络威胁。
|
3天前
|
安全 网络协议 网络安全
网络安全与信息安全
在数字化时代,网络安全和信息安全已成为全球关注的焦点。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,旨在帮助读者了解如何保护自己的在线信息和资产。通过分析常见的网络威胁和攻击手段,本文强调了采取适当的安全措施来防范风险的必要性。同时,本文还将介绍一些实用的加密技术和安全工具,以增强个人和组织的信息安全防御能力。
|
2天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第36天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的知识,帮助读者更好地了解网络安全的重要性。