【面小易-面经11】阿里巴巴Java研发工程师5面经验
“我是面小易,机智又聪明。面试不眨眼,Offer不手软。” 我面小易又来啦,今天要和大家一起分享的是一位投递阿里巴巴Java研发工程师同学的经验,这位同学在大三才开始转向Java,但是能够从他对于面试问题的总结中看出他的基础知识很牢固和扎实,因此最终能够一路过关斩将,通过5轮面试最终斩获了Offer。 以下为正文 前言 在接触Java之前我接触的比较多的是硬件方面,用的比较多的语言就是C、C++。到了大三我才正式选择Java方向,到目前为止使用Java到现在大概有一年多的时间,所以Java算不上很好。刚开始投递的时候,实习刚辞职,也没准备笔试面试,很多东西都忘记了。 所以,刚开始我并没有直接就投递阿里,毕竟心里还是有一点点小害怕的。于是,我就先投递了几个不算大的公司来练手,就是想着刷刷经验而已或者说是练练手(PS:还是挺对不起那些公司的)。面了一个月其他公司后,我找了我实验室的学长内推我,后面就有了这5次面试。面试阿里之前我对自己的并发知识不太有信心,就花时间看了几本并发方面的书籍,网上也找了好多博客来看。 下面简单的说一下我的这5次面试:4次技术面+1次HR面,希望我的经历能对你有所帮助。 面小易说:这位同学非常谦虚,但是能够看出他属于“有心人”,一方面能够找一些面试“实战”来锻炼自己,在面试阿里巴巴之前,他已经经过了一个月的面试,可以说是身经百战了,这时候觉得面试状态不错的时候再找学长帮他内推,可以说规划非常周密。另外一方面他明确地知道自己哪里存在短板和不足,就会进行针对性学习和补充,比如对于并发这部分不够有信心,那么就找几本这方面的书来查漏补缺,这样的方法的确值得我们学习和借鉴。 一面(技术面) 自我介绍(主要讲自己会的技术细节,项目经验,经历那些就一语带过,后面面试官会问你的)。 聊聊项目(就是一个很普通的分布式商城,自己做了一些改进),让我画了整个项目的架构图,然后针对项目抛了一系列的提高性能的问题,还问了我做项目的过程中遇到了那些问题,如何解决的,差不读就这些吧。 可能是我前面说了我会数据库优化,然后面试官就开始问索引、事务隔离级别、悲观锁和乐观锁、索引、ACID、MVVC这些问题。 浏览器输入URL发生了什么? TCP和UDP区别? TCP如何保证传输可靠性? 讲下跳表怎么实现的?哈夫曼编码是怎么回事?非递归且不用额外空间(不用栈),如何遍历二叉树。 后面又问了很多JVM方面的问题,比如Java内存模型、常见的垃圾回收器、双亲委派模型这些。 你有什么问题要问吗? 面小易说:按照以往的经验,一面更加侧重于Java的基础知识,广度比较大,审视不一定非常深入。但是这个同学的一面似乎有些不同,上来就针对于项目进行了提问,并且还问到了很多JVM相关的知识点,因此也能够看出,技术面试也是因人而异的,如果你技术的确比较强,那么问的问题也可能更加深入,这样给面试官留下的印象也会更加深刻。 二面(技术面) […]