|
1 | | ------- |
2 | | - |
3 | | - |
| 1 | +--- |
4 | 2 |
|
5 | 3 | # 七 优质面经 |
6 | 4 |
|
7 | | -> 作者:Guide哥。 |
| 5 | +> 作者:Guide 哥。 |
8 | 6 | > |
9 | | -> **介绍:** Github 70k Star 项目 **[JavaGuide](https://github.com/Snailclimb/JavaGuide)**(公众号同名) 作者。每周都会在公众号更新一些自己原创干货。公众号后台回复“1”领取Java工程师必备学习资料+面试突击pdf。 |
| 7 | +> **介绍:** Github 70k Star 项目 **[JavaGuide](https://github.com/Snailclimb/JavaGuide)**(公众号同名) 作者。每周都会在公众号更新一些自己原创干货。公众号后台回复“1”领取 Java 工程师必备学习资料+面试突击 pdf。 |
10 | 8 |
|
11 | | -## 五面阿里,终获offer |
| 9 | +## 五面阿里,终获 offer |
12 | 10 |
|
13 | 11 | > 作者:ppxyn。本文来自读者投稿,同时也欢迎各位投稿,**对于不错的原创文章我根据你的选择给予现金(100-500)、付费专栏或者任选书籍进行奖励!所以,快提 pr 或者邮件的方式(邮件地址在主页)给我投稿吧!** 当然,我觉得奖励是次要的,最重要的是你可以从自己整理知识点的过程中学习到很多知识。 |
14 | | -> |
15 | | -> |
16 | 12 |
|
17 | | -### 前言 |
| 13 | +### 前言 |
18 | 14 |
|
19 | | -在接触 Java 之前我接触的比较多的是硬件方面,用的比较多的语言就是C和C++。到了大三我才正式选择 Java 方向,到目前为止使用Java到现在大概有一年多的时间,所以Java算不上很好。刚开始投递的时候,实习刚辞职,也没准备笔试面试,很多东西都忘记了。所以,刚开始我并没有直接就投递阿里,毕竟心里还是有一点点小害怕的。于是,我就先投递了几个不算大的公司来练手,就是想着刷刷经验而已或者说是练练手(ps:还是挺对不起那些公司的)。面了一个月其他公司后,我找了我实验室的学长内推我,后面就有了这5次面试。 |
| 15 | +在接触 Java 之前我接触的比较多的是硬件方面,用的比较多的语言就是 C 和 C++。到了大三我才正式选择 Java 方向,到目前为止使用 Java 到现在大概有一年多的时间,所以 Java 算不上很好。刚开始投递的时候,实习刚辞职,也没准备笔试面试,很多东西都忘记了。所以,刚开始我并没有直接就投递阿里,毕竟心里还是有一点点小害怕的。于是,我就先投递了几个不算大的公司来练手,就是想着刷刷经验而已或者说是练练手(ps:还是挺对不起那些公司的)。面了一个月其他公司后,我找了我实验室的学长内推我,后面就有了这 5 次面试。 |
20 | 16 |
|
21 | | -下面简单的说一下我的这5次面试:4次技术面+1次HR面,希望我的经历能对你有所帮助。 |
| 17 | +下面简单的说一下我的这 5 次面试:4 次技术面+1 次 HR 面,希望我的经历能对你有所帮助。 |
22 | 18 |
|
23 | 19 | ### 一面(技术面) |
24 | 20 |
|
25 | 21 | 1. 自我介绍(主要讲自己会的技术细节,项目经验,经历那些就一语带过,后面面试官会问你的)。 |
26 | 22 | 2. 聊聊项目(就是一个很普通的分布式商城,自己做了一些改进),让我画了整个项目的架构图,然后针对项目抛了一系列的提高性能的问题,还问了我做项目的过程中遇到了那些问题,如何解决的,差不读就这些吧。 |
27 | | -3. 可能是我前面说了我会数据库优化,然后面试官就开始问索引、事务隔离级别、悲观锁和乐观锁、索引、ACID、MVVC这些问题。 |
28 | | -4. 浏览器输入URL发生了什么? TCP和UDP区别? TCP如何保证传输可靠性? |
| 23 | +3. 可能是我前面说了我会数据库优化,然后面试官就开始问索引、事务隔离级别、悲观锁和乐观锁、索引、ACID、MVVC 这些问题。 |
| 24 | +4. 浏览器输入 URL 发生了什么? TCP 和 UDP 区别? TCP 如何保证传输可靠性? |
29 | 25 | 5. 讲下跳表怎么实现的?哈夫曼编码是怎么回事?非递归且不用额外空间(不用栈),如何遍历二叉树 |
30 | | -6. 后面又问了很多JVM方面的问题,比如Java内存模型、常见的垃圾回收器、双亲委派模型这些 |
| 26 | +6. 后面又问了很多 JVM 方面的问题,比如 Java 内存模型、常见的垃圾回收器、双亲委派模型这些 |
31 | 27 | 7. 你有什么问题要问吗? |
32 | 28 |
|
33 | 29 | ### 二面(技术面) |
|
36 | 32 | 2. 操作系统的内存管理机制 |
37 | 33 | 3. 进程和线程的区别 |
38 | 34 | 4. 说下你对线程安全的理解 |
39 | | -5. volatile 有什么作用 ,sychronized和lock有什么区别 |
40 | | -6. ReentrantLock实现原理 |
41 | | -7. 用过CountDownLatch么?什么场景下用的? |
42 | | -8. AQS底层原理。 |
| 35 | +5. volatile 有什么作用 ,sychronized 和 lock 有什么区别 |
| 36 | +6. ReentrantLock 实现原理 |
| 37 | +7. 用过 CountDownLatch 么?什么场景下用的? |
| 38 | +8. AQS 底层原理。 |
43 | 39 | 9. 造成死锁的原因有哪些,如何预防? |
44 | | -10. 加锁会带来哪些性能问题。如何解决? |
45 | | -11. HashMap、ConcurrentHashMap源码。HashMap是线程安全的吗?Hashtable呢?ConcurrentHashMap有了解吗? |
46 | | -12. 是否可以实习? |
47 | | -13. 你有什么问题要问吗? |
| 40 | +10. 加锁会带来哪些性能问题。如何解决? |
| 41 | +11. HashMap、ConcurrentHashMap 源码。HashMap 是线程安全的吗?Hashtable 呢?ConcurrentHashMap 有了解吗? |
| 42 | +12. 是否可以实习? |
| 43 | +13. 你有什么问题要问吗? |
48 | 44 |
|
49 | 45 | ### 三面(技术面) |
50 | 46 |
|
51 | | -1. 有没有参加过 ACM 或者他竞赛,有没有拿过什么奖?( 我说我没参加过ACM,本科参加过数学建模竞赛,名次并不好,没拿过什么奖。面试官好像有点失望,然后我又赶紧补充说我和老师一起做过一个项目,目前已经投入使用。面试官还比较感兴趣,后面又和他聊了一下这个项目。) |
| 47 | +1. 有没有参加过 ACM 或者他竞赛,有没有拿过什么奖?( 我说我没参加过 ACM,本科参加过数学建模竞赛,名次并不好,没拿过什么奖。面试官好像有点失望,然后我又赶紧补充说我和老师一起做过一个项目,目前已经投入使用。面试官还比较感兴趣,后面又和他聊了一下这个项目。) |
52 | 48 | 2. 研究生期间,做过什么项目,发过论文吗?有什么成果吗? |
53 | 49 | 3. 你觉得你有什么优点和缺点?你觉得你相比于那些比你更优秀的人欠缺什么? |
54 | | -4. 有读过什么源码吗?(我说我读过 Java 集合框架和 Netty 的,面试官说 Java 集合前几面一定问的差不多,就不问了,然后就问我 Netty的,我当时很慌啊!) |
55 | | -5. 介绍一下自己对 Netty 的认识,为什么要用。说说业务中,Netty 的使用场景。什么是TCP 粘包/拆包,解决办法。Netty线程模型。Dubbo 在使用 Netty 作为网络通讯时候是如何避免粘包与半包问题?讲讲Netty的零拷贝?巴拉巴拉问了好多,我记得有好几个我都没回答上来,心里想着凉凉了啊。 |
| 50 | +4. 有读过什么源码吗?(我说我读过 Java 集合框架和 Netty 的,面试官说 Java 集合前几面一定问的差不多,就不问了,然后就问我 Netty 的,我当时很慌啊!) |
| 51 | +5. 介绍一下自己对 Netty 的认识,为什么要用。说说业务中,Netty 的使用场景。什么是 TCP 粘包/拆包,解决办法。Netty 线程模型。Dubbo 在使用 Netty 作为网络通讯时候是如何避免粘包与半包问题?讲讲 Netty 的零拷贝?巴拉巴拉问了好多,我记得有好几个我都没回答上来,心里想着凉凉了啊。 |
56 | 52 | 6. 用到了那些开源技术、在开源领域做过贡献吗? |
57 | 53 | 7. 常见的排序算法及其复杂度,现场写了快排。 |
58 | | -8. 红黑树,B树的一些问题。 |
| 54 | +8. 红黑树,B 树的一些问题。 |
59 | 55 | 9. 讲讲算法及数据结构在实习项目中的用处。 |
60 | 56 | 10. 自己的未来规划(就简单描述了一下自己未来的设想啊,说的还挺诚恳,面试官好像还挺满意的) |
61 | | -11. 你有什么问题要问吗? |
| 57 | +11. 你有什么问题要问吗? |
62 | 58 |
|
63 | | -### 四面(半个技术面) |
| 59 | +### 四面(半个技术面) |
64 | 60 |
|
65 | | -三面面完当天,晚上9点接到面试电话,感觉像是部门或者项目主管。 这个和之前的面试不大相同,感觉面试官主要考察的是你解决问题的能力、学习能力和团队协作能力。 |
| 61 | +三面面完当天,晚上 9 点接到面试电话,感觉像是部门或者项目主管。 这个和之前的面试不大相同,感觉面试官主要考察的是你解决问题的能力、学习能力和团队协作能力。 |
66 | 62 |
|
67 | 63 | 1. 让我讲一个自己觉得最不错的项目。然后就巴拉巴拉的聊,我记得主要是问了项目是如何进行协作的、遇到问题是如何解决的、与他人发生冲突是如何解决的这些。感觉聊了挺久。 |
68 | 64 | 2. 出现 OOM 后你会怎么排查问题? |
69 | 65 | 3. 自己平时是如何学习新技术的?除了 Java 还回去了解其他技术吗? |
70 | 66 | 4. 上一段实习经历的收获。 |
71 | | -5. NginX如何做负载均衡、常见的负载均衡算法有哪些、一致性哈希的一致性是什么意思、一致性哈希是如何做哈希的 |
| 67 | +5. NginX 如何做负载均衡、常见的负载均衡算法有哪些、一致性哈希的一致性是什么意思、一致性哈希是如何做哈希的 |
72 | 68 | 6. 你有什么问题问我吗? |
73 | 69 | 7. 还有一些其他的,想不起来了,感觉这一面不是偏向技术来问。 |
74 | 70 |
|
75 | | -### 五面(HR面) |
| 71 | +### 五面(HR 面) |
76 | 72 |
|
77 | 73 | 1. 自我介绍(主要讲能突出自己的经历,会的编程技术一语带过)。 |
78 | 74 | 2. 你觉得你有什么优点和缺点?如何克服这些缺点? |
|
89 | 85 | 3. 等待面试的过程和面试的过程真的好熬人,那段时间我压力也比较大,好在我私下找到学长聊了很多,心情也好了很多。 |
90 | 86 | 4. 面试之后及时总结,面的好的话,不要得意,尽快准备下一场面试吧! |
91 | 87 |
|
92 | | -我觉得我还算是比较幸运的,最后也祝大家都能获得心仪的Offer。 |
| 88 | +我觉得我还算是比较幸运的,最后也祝大家都能获得心仪的 Offer。 |
0 commit comments