十分幸运 拿到阿里云的offer,感谢周围无数人对我的支持和鼓励,所以写篇面经希望可以帮助大家。
面试中,运气占很大一部分的,所以你们若是没有通过,一定不要气馁,继续加油,每个努力的人 都值得钦佩,无论结果如何。
我说点面试中的小技巧,可以帮助你更好发挥(注意:这个方法比较适合我,不一定适合你哇)
完全可以将学到的知识讲给自己(或者讲给别人),若是自己(别人)听你的讲述 能够听懂(使用自己的话去讲,而不要有专业术语),那么说明你已经学好了。其原理就是费曼学习法。感兴趣的人可以去了解下。
我个人习惯于 将一个知识点分解为xxx是什么,xxx有什么用,如何实现这个功能的(核心的工作流程),缺点是什么(以及为什么有这个缺点,缺点如何补救)。
举个例子, CMS垃圾回收器回收时为什么有内存碎片 , 首先分解为CMS是什么,内存碎片是什么?CMS垃圾回收器有什么用和Serial ParNew Parallel 等比较,优势,CMS是如何工作的,来实现尽可能降低响应时间的,为什么CMS有这个缺点,它是如何取舍的,如何补救这个缺点。
这些子问题都回答好,那么基本上这个问题就学的可以了,这样可以检测你是否学好,而且,若是你都没法条理清晰地讲给自己,那怎么条理清晰地讲给面试官呢?
注:文末有福利,记得领取!
接下来就写下三次面试题目:
阿里一面:
1.个人介绍
2.项目介绍,项目介绍首先讲最好的项目,因为后面的项目可能都没时间去讲。
3.数据库 联合索引 用法
4.Spring IOC初始化过程
5.ConcurrentHashMap实现原理
6.CAS操作
7.ReentrantLock和Synchronized区别
8.CMS垃圾回收过程
9.Full GC次数太多了,如何优化。
10.直接内存 如何 管理的
11.线程池 参数。
12.线程创建的过程。有几种方法。
13.线程资源如何回收的。
14.如何将一个二叉树,转为有序的双向链表。
阿里二面
1.自我介绍
2.项目介绍
3.堆和栈介绍
4.线程安全
5.乐观锁悲观锁
6.TCP三次握手
7.socket通信有关,select epoll
8.项目中的难点有哪些
- 使用一个组合的设计模式 去解决文章多级分类的问题。
交叉面
1.自我介绍
2.项目介绍
3.做这个项目的动机
4.TCP UDP IP ICMP
5.知不知道一个应用层协议,运输层既没有使用TCP,也没有使用UDP
6.二叉树中求最长路径。
- 递归的方式去实现。先求左子树深度,后求右子树深度。相加减一,那么就是以当前结点为转折点的解。然后递归求左子树的解,和右子树的解。返回当前解,左子树解,右子树解中最大的解。时间复杂度为O(n*logn)其实可以优化到O(n) ,其实不必求两个子树的解,只需要求较深子树的解即可。
7.有什么想问我的吗?
8.您觉得成为一个顶尖高手,最重要的是什么呢?
- 兴趣。做自己感兴趣的事,就不会很疲惫,也会很开心,这一点我深有同感,抓住你的兴趣,做你想做的事,自己驱动自己进步。
hr面试
1.自我介绍。
2.项目介绍。项目中难点。得过啥奖没。
3.项目有什么不足?
4.前面的面试 发挥怎么样?
5.前面的面试难度怎样?
总结
希望我的面试经历能够帮助到正在准备面试的你,愿大家都能拿到自己理想的offer。作为阅读福利,我也把自己的复习资料整理了一下,现在免费分享给阅读到本篇文章的Java程序员朋友们,需要的可戳此处领取