阿里面试经历

在接触 Java 之前我接触的最多的是硬件⽅⾯,⽤的多的语⾔就是C和C++。到了⼤三我才正式选择 Java ⽅向,到⽬前为⽌使⽤Java到现在⼤概有⼀年多的时间,所以Java算不上很好。刚开始投递的时候,实习刚辞职,也没准备笔试和面试,很多东⻄都忘记了。所以,刚开始我并没有直接就投递阿⾥,毕竟⼼⾥还是有⼀点点⼩害怕的。于是,我就先投递了⼏个不算⼤的公司来练⼿,就是想着刷刷经验⽽已或者说是练练⼿(ps:还是挺对不起那些公司的)。⾯了⼀个⽉其他公司后,我找了我实验室的学⻓内推我,后⾯就有了这5次⾯试。下⾯简单的说下我的这5次⾯试:4次技术⾯+1次HR⾯,希望我的经历能对你有所帮助。

⼀⾯(技术⾯)

1. ⾃我介绍

2. 聊聊项⽬(就是⼀个很普通的分布式商城,⾃⼰做了⼀些改进),让我画了整个项⽬的架构图,然后针对项⽬抛了⼀系列的提⾼性能的问题,还问了我做项⽬的过程中遇到了那些问题,如何解决的,差不多就这些吧。

3. 可能是我前⾯说了我会数据库优化,然后⾯试官就开始问索引、事务隔离级别、悲观锁和乐观锁、索引、ACID、MVVC这些问题。

4. 浏览器输⼊URL发⽣了什么? TCP和UDP区别? TCP如何保证传输可靠性?

5. 讲下跳表怎么实现的?哈夫曼编码是怎么回事?⾮递归且不⽤额外空间(不⽤栈),如何遍历⼆叉树

6. 后⾯⼜问了很多JVM⽅⾯的问题,⽐如Java内存模型、常⻅的垃圾回收器、双亲委派模型这些

7. 你有什么问题要问吗?

⼆⾯(技术⾯)

1. ⾃我介绍

2. 操作系统的内存管理机制

3. 进程和线程的区别

4. 说下你对线程安全的理解

5. volatile 有什么作⽤ ,sychronized和lock有什么区别

6. ReentrantLock实现原理

7. ⽤过CountDownLatch么?什么场景下⽤的?

8. AQS底层原理。

9. 造成死锁的原因有哪些,如何预防?

10. 加锁会带来哪些性能问题。如何解决?

11. HashMap、ConcurrentHashMap源码。HashMap是线程安全的吗?Hashtable呢?ConcurrentHashMap有了解吗?

12. 是否可以实习?

13. 你有什么问题要问吗?

三⾯(技术⾯)

1. 有没有参加过 ACM 或者他竞赛,有没有拿过什么奖?( 我说我没参加过ACM,本科参加过数学建模竞赛,名次并不好,没拿过什么奖。⾯试官好像有点失望,然后我⼜赶紧补充说我和⽼师⼀起做过⼀个项⽬,⽬前已经投⼊使⽤。⾯试官还⽐᫾感兴趣,后⾯⼜和他聊了⼀下这个项⽬。)

2. 研究⽣期间,做过什么项⽬,发过论⽂吗?有什么成果吗?

3. 你觉得你有什么优点和缺点?你觉得你相⽐于那些⽐你更优秀的⼈⽋缺什么?

4. 有读过什么源码吗?(我说我读过 Java 集合框架和 Netty 的,⾯试官说 Java 集合前⼏⾯⼀定问的差不多,就不问了,然后就问我 Netty的,我当时很慌啊!)

5. 介绍⼀下⾃⼰对 Netty 的认识,为什么要⽤。说说业务中,Netty 的使⽤场景。什么是TCP 粘

包/拆包,解决办法。Netty线程模型。Dubbo 在使⽤ Netty 作为⽹络通讯时候是如何避免粘包与

半包问题?讲讲Netty的零拷⻉?巴拉巴拉问了好多,我记得有好⼏个我都没回答上来,⼼⾥想

着凉凉了啊。

6. ⽤到了那些开源技术、在开源领域做过贡献吗?

7. 常⻅的排序算法及其复杂度,现场写了快排。

8. 红⿊树,B树的⼀些问题。

9. 讲讲算法及数据结构在实习项⽬中的⽤处。

10. ⾃⼰的未来规划(就简单描述了⼀下⾃⼰未来的设想啊,说的还挺诚恳,⾯试官好像还挺满意

的)

11. 你有什么问题要问吗?

四⾯(半个技术⾯)

三⾯⾯完当天,晚上9点接到⾯试电话,感觉像是部⻔或者项⽬主管。 这个和之前的⾯试不⼤相同,感觉⾯试官主要考察的是你解决问题的能⼒、学习能⼒和团队协作能⼒。

1. 让我讲⼀个⾃⼰觉得最不错的项⽬。然后就巴拉巴拉的聊,我记得主要是问了项⽬是如何进⾏协作的、遇到问题是如何解决的、与他⼈发⽣冲突是如何解决的这些。感觉聊了挺久。

2. 出现 OOM 后你会怎么排查问题?

3. ⾃⼰平时是如何学习新技术的?除了 Java 还回去了解其他技术吗?

4. 上⼀段实习经历的收获。

5. NginX如何做负载均衡、常⻅的负载均衡算法有哪些、⼀致性哈希的⼀致性是什么意思、⼀致性哈希是如何做哈希的

6. 你有什么问题问我吗?

7. 还有⼀些其他的,想不起来了,感觉这⼀⾯不是偏向技术来问。

五⾯(HR⾯)

1. ⾃我介绍(主要讲能突出⾃⼰的经历,会的编程技术⼀语带过)。

2. 你觉得你有什么优点和缺点?如何克服这些缺点?

3. 说⼀件⼤学⾥你⾃⼰⽐᫾有成就感的⼀件事情,为此付出了那些努⼒。

4. 你前⾯跟其他⾯试官讲过⼀些你做的项⽬吧?可以给我讲讲吗?你要考虑到我不是⼀个做技术的⼈,怎么让我也听得懂。项⽬中有什么问题,你怎么解决的?你最⼤的收获是什么?

5. 你⽬前有⾯试过其他公司吗?如果让你选,这些公司和阿⾥,你选哪个?(送分题,回答不好可能送命)

6. 你期望的⼯作地点是哪⾥?

7. 你有什么问题吗?

面试总结与备战资料分享

1. 可以看出,面试官问我的很多问题都是常⻅的问题,所以记得⼀定要提前准备,还要深⼊准备,不要回答的太⽪⽑。很多时候⼀个问题可能会牵扯出很多问题,遇到不会的问题不要慌,冷静分析,如果你真的回答不上来,也不要担⼼⾃⼰是不是就要挂了,很可能这个问题本身就⽐教难。

2. 表达能⼒和沟通能⼒太重要了,⼀定要提前练⼀下,我⾃身就是⼀个不太会说话的⼈,所以,⾯试前我对于⾃我介绍、项⽬介绍和⼀些常⻅问题都在脑⼦⾥练了好久,确保⾯试的时候能够很清晰和简洁地说出来。

3. 等待⾯试的过程和⾯试的过程真的好熬⼈,那段时间我压⼒也⼤,好在我私下找到学⻓聊了很多,⼼情也好了很多。

4. ⾯试之后及时总结,⾯的好的话,不要得意,尽快准备下⼀场⾯试吧!我觉得我还算是幸运的,下面我会把我备战时用的资料分享给大家,最后也祝⼤家都能获得⼼仪的Offer。

Java一无所知到入门

  • 目录一览:

  • 部分内容一览

Java核心知识点整理

Java中高级知识梳理+面试简历指导

面试题总结:

由于篇幅限制,就只能以这样的形式展示出来了,需要的小伙伴帮忙点赞文章,关注我之后添加小助理vx即可免费获取!