阿里Java研发工程师实习面经,附面试技巧

206 阅读4分钟
原文链接: mp.weixin.qq.com

作者:如何进阿里 链接:https://www.nowcoder.com/discuss/72899?type=0&order=0&pos=17&page=1 来源:牛客网

今天在码代码,所以给大家分享一篇自己看到的好文章把~~~~

前言

十分幸运 拿到阿里云的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.线程池 参数。

线程创建的过程。有几种方法。

线程资源如何回收的。

一个题目:如何将一个二叉树,转为有序的双向链表。

阿里二面

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.有什么想问我的吗?

//您觉得成为一个顶尖高手,最重要的是什么呢?

兴趣。做自己感兴趣的事,就不会很疲惫,也会很开心。 //这一点我深有同感。

抓住你的兴趣,做你想做的事,自己驱动自己进步。

//很感谢您的建议。

HR面试

1.自我介绍。

2.项目介绍。项目中难点。得过啥奖没。

3.项目有什么不足?

4.前面的面试 发挥怎么样?

5.前面的面试难度怎样?

愿大家都能拿到自己理想的offer!

欢迎关注我的微信公众号:“Java面试通关手册”(坚持原创,分享美文,分享各种Java学习资源,面试题,以及企业级Java实战项目回复关键字免费领取):