阿里2017Java开发面经 暑期实习+秋招
秋招结束,总结了一下从寒假回来开始的实习生招聘和秋招面经,过来回馈一下牛客网。
1、一面 23分钟
-
看了你的博客,写的很多,介绍一个你研究最深入的领域吧 我说了Spring的IOC
-
再介绍下aop吧
-
算法题 two sum 和three sum
-
介绍下数据库的索引
-
又问了简历里的专利
-
评价下你自己
-
因为当时刚提交简历还没做测评,我问他测评还需不需要做,他说测评还是要做的,但是当我面完网易去做测评的时候发现编程题的链接已经打不开了,测评题随便做了两道就直接关了,因为当时面了一天试实在太累。
2、二面 41分钟
-
自我介绍
-
介绍个印象最深的项目,负责的模块、遇到的问题,全程都是我再说,他没有提问题
-
算法:二叉树转换成有序双向链表。不知道是不是故意的,他没有说二叉搜索树,然后我问了他,他说是二叉搜索树。要求我写代码然后读给他
-
算法:双向链表中插入一个结点
-
算法:把一个二维数组顺时针旋转90度。这个题因为以前做过还记下来了,我就说先对角线反转再中心反转,但是他好像没太明白,说有没有更优雅的方法,然后我又和他解释了一下,我觉得O(n)应该是最优的了吧
-
数据库,给一张学生的表,找出成绩在10到15名的学生。
-
说出自己的两个优点和缺点,我说完他还又问了一遍,好像是记下来了
-
你说你学习能力强,那你举个具体的例子吧
-
你有什么问题吗
二面之后第二天发短信提醒我做测评题,这里也是我大意了没有准备,边界条件写的有问题,没有全部通过,再第二天官网上写着已回绝。
3、总结
-
阿里的特点就是面试官上来就面试,从来不预约,而且很喜欢问你的有点和缺点是什么
-
阿里被拒自己确实有很大的问题,一方面当时在杭州面网易太累了性格测试没有做,但主要还是前面面试可能太顺利了有些大意,编程题本来可以做出来的自己却没有好好准备。
- 阿里状态更新还是很快的,起码不会让你纠结的等很久。
1、一面电话面 大约一个小时
-
自我介绍,说一下你实习做了上面,遇到了什么困难
-
jvm了解吗 ,那你说下垃圾回收都有哪些算法吧。
-
怎么确定一个对象是不是可以被回收呢
可达性分析,还涉及到四种指针
-
那你介绍一下四种指针分别说明时候用
竟然连四种指针都说不全了,想了一会,然后说到weakhahsmap,我说有ThreadLocal
-
那你再说一下ThreadLocal是干什么的,说明时候用
我大概说了一下,很多都记不清了。
-
线程池有了解吗,你介绍下线程池的几个重要参数吧
这块也想不起来了,完全没有状态,他提示了一下,然后我结合起来大概介绍了点
-
Java中的锁有哪几种
我说内置锁,显示锁
-
不是语法层面上的,比如偏向锁(应该是这个,记不太清了),你有听说过吗
我确实没听过,他说那这块算了,我又问了,你是指自旋锁这种吗
-
那你说说自旋锁吧,嗯独占锁也说一下,他俩的区别呢。轻量级锁和重量级锁分别是哪个呢
我大概说了一下
-
分布式常用的框架有了解吗
没有
-
大数据呢
没有
-
Linux怎么样,内核了解过吗
没有,只停留在使用层面
-
好,那做两道算法题吧,在codepad上面
第一道,先写个简单点的,反转链表吧。
刚才比较简答,写个稍微难点的吧,描述了一会,是全排列,我也写出来了
-
最后还有个问题,给你个场景,你说下思路就可以:数据库,有很多元数据库,再同一时间从***数据库查询数据,这样对***数据库瞬间压力比较大,你有什么解决办法呢?
我说某个节点先复制数据,复制之后其他节点就从这个复制完数据的节点复制数据,这样就可以log形式完成数据的复制。(他开始说是查询,不过我回答的好像是复制了)
他说还有没有其他方法呢?
我说可以参考有些数据库备份是备份所有的操作指令,如果***数据库记录所有的指令,然后将这些操作指令发给其他节点,其他节点再执行这些指令,那么最后他们的数据应该也是一致的。
然后他也没说什么,说你还有什么问题吗
-
我问了一下,他们是阿里巴巴集团下面的数据库的部门,还说了很多专业术语,不过我对数据库了解实在太有限根本没懂,大概意思就是他们的数据量和传统的根本不在一个量级上。对员工的要求就是了解高并发低延迟,对数据库感兴趣。
-
如果现场写,我估计连一个sql语句都写不出来,数据库应该是我的短板了,结果还来了个数据库部门,不知道为什么会看上我的简历。
秋招第一面就是阿里,完全没有状态,很多概念都忘了,不过算法题倒不是很难,感觉面的很一般,加上我对数据库的掌握实在太有限,第二周发现已经被回绝。