我是一个不太爱折腾的人,所以在一个公司待久了,就不太会轻易跳槽。正由于如此,我在上家公司待了整整三年,在这里,认识了一群可爱的人,便更不舍得离去。java
但由于公司属于传统企业,技术上并无太大挑战,我的也逐渐遇到了职业瓶颈,我也渐渐体会到了温水煮青蛙的感受,看似本身已经成为团队的主程,其实与同龄人的差距越拉越大,因而依然决定换个环境。程序员
阿里巴巴做为国内最大的互联网公司,是无数程序员的梦想,因而在七月份便投了阿里旗下菜鸟网络的简历,一个菜鸟便开始了菜鸟网络的面试之旅。面试
接到菜鸟的面试电话时,仍是很激动的,由于以前历来没有面试大厂的经验,便在忐忑不安中开始了面试。redis
面试官先让我聊了聊最近的项目,我便把项目讲了下,面试官便以此为切入点,问了一下相关的知识算法
http 协议 转 dubbo 协议 怎么作的
dubbo 的架构设计说一下
mq 通知时,消费者没消费到怎么办
redis 是单线程了吗?有什么好处
通常设置过时时间吗,业务场景有哪些,过时策略有哪些
redis 持久化了解不,大家线上怎么用的
大家线上为何这么用?只用AOF行不行
你有什么想问的?数据库
一面大概用了半个小时,总体没有太大难度,更可能是聊了一些项目上的东西,作了一个初步了解。浏览器
没想到二面来的如此之快,一面结束的次日,电话就打来了,当时我还在公交车上,便在车停站时赶忙下车,当时还下着蒙蒙细雨,我也顾不上那么多了,找个了稍微安静的角落就开始了面试。网络
二面问的技术面比较广,先让我聊了最近作的项目,以及让我讲了下项目中用到的单点登陆的流程,接着就是java基础了架构
抽象类和接口你倾向用哪一个?什么场景下用抽象类
如何更好的实现一个单例
synchronized 和 lock 区别
公平锁和非公平锁
怎么实现自定注解
类加载机制
如何实现本身的classloader
如何动态加载类
如何触发full gc
用jvm命令如何触发jvm
最后聊了一些开放性的问题
了解过netty吗
微服务了解过吗,Service Mesh呢
五亿数据,找出数量top100
10G数据,在内存小于10G如何分片
分片处理完如何汇总
分布在多个节点上如何汇总
哈希取模如何哈希?哈希冲突怎么办?能彻底解决哈希冲突吗
数据库乐观锁和悲观锁
秒杀系统如何设计?
redis分布式锁如何玩?超时时间如何设置
zk的监听原理,你来实现你怎么作
主动推送怎么实现
整个面试聊下来,感受还算不错,基本都回答出来了。
大概又过来一周,hr通知要到现场面,约的是上午十点,为了能准时赶到,我提早一天去了杭州。
次日早早的就起来了来到了面试地点,由于来的比较早,就坐在菜鸟大楼的外面等。七月的杭州彷佛格外的热,看着菜鸟大厦的人进进出出,每一个人彷佛都很忙,我不禁的想,本身从此是否有幸也能成为他们中的一员。
三面的形式彻底出乎我意料,来了两个面试官,先作了自我介绍,便开始了面试。
整个面试过程都让我在黑板上画图讲解,他们会不间断的提问并作记录。
先是让我画了项目的架构图,面试官指出了我项目中存在的一些问题问我如何解决,而后穿插着对项目中用到的一些技术进行提问
消息如何保证必定被消费,如何没有消费到怎么办
Redis 怎么保证不丢数据,能不能保证严格意义的必定不会丢
Redis 集群,生产环境Redis 如何作数据迁移
一致性hash算法
数据库是怎么保证必定不会丢失数据的
浏览器敲入一个域名,尽量详情的说下接下来网络协议层面发生了什么
了解过哪些锁,volatile 说下
三面持续了大概一个小时,面的不太好,主要是网络协议那一块,我回答的太烂了
四面是一个看起来很是平易近人的大叔,全程微笑和我聊天,没有一点架子,应该是 Team Leader
。
整个过程没有聊技术细节,主要聊了一些技术的方向,业务的理解,过往的经历。整个过程仍是聊的很愉快的。
整个面试过程问的知识点并不算难,也没有很偏的题,不少都是开放性的问题。
例如redis在生产环境作数据迁移,一个只看过几篇博客的人和一个确实亲身经历过这种场景的人,回答的绝对有差异,而正是这种问题,才能看出来差距。
遗憾的是最后仍是没经过面试,我以为缘由主要以下
在我看来,面试不只仅是实力加运气,我的发挥也很重要,有的人面试常常能发挥百分之一百二的实力,我总结了几点
虽然没能进阿里,但我并不沮丧,只是有些遗憾。毕竟在这条路上,我一直在努力,过程已经足够丰富多彩,结果已然没那么重要,顺其天然就好。
生活本就是一个不可预知的过程,只要朝着更好的方向前进就好。何况,因祸得福焉知非福,如今我入职了一家很不错的互联网公司,作的是本身喜欢的中间件研发,并且又遇到了一群可爱又有趣的人。这样的结果,我已然知足。