阿里2017Java开发面经 暑期实习+秋招

秋招结束,总结了一下从寒假回来开始的实习生招聘和秋招面经,过来回馈一下牛客网。

1、一面 23分钟

看了你的博客,写的很多,介绍一个你研究最深入的领域吧 我说了Spring的IOC

再介绍下aop吧

算法题 two sum 和three sum

介绍下数据库的索引

又问了简历里的专利

评价下你自己

因为当时刚提交简历还没做测评,我问他测评还需不需要做,他说测评还是要做的,但是当我面完网易去做测评的时候发现编程题的链接已经打不开了,测评题随便做了两道就直接关了,因为当时面了一天试实在太累。

2、二面 41分钟

自我介绍

介绍个印象最深的项目,负责的模块、遇到的问题,全程都是我再说,他没有提问题

算法:二叉树转换成有序双向链表。不知道是不是故意的,他没有说二叉搜索树,然后我问了他,他说是二叉搜索树。要求我写代码然后读给他

算法:双向链表中插入一个结点

算法:把一个二维数组顺时针旋转90度。这个题因为以前做过还记下来了,我就说先对角线反转再中心反转,但是他好像没太明白,说有没有更优雅的方法,然后我又和他解释了一下,我觉得O(n)应该是最优的了吧

数据库,给一张学生的表,找出成绩在10到15名的学生。

说出自己的两个优点和缺点,我说完他还又问了一遍,好像是记下来了

你说你学习能力强,那你举个具体的例子吧

你有什么问题吗

二面之后第二天发短信提醒我做测评题,这里也是我大意了没有准备,边界条件写的有问题,没有全部通过,再第二天官网上写着已回绝。

3、总结

阿里的特点就是面试官上来就面试,从来不预约,而且很喜欢问你的有点和缺点是什么

阿里被拒自己确实有很大的问题,一方面当时在杭州面网易太累了性格测试没有做,但主要还是前面面试可能太顺利了有些大意,编程题本来可以做出来的自己却没有好好准备。

阿里状态更新还是很快的,起码不会让你纠结的等很久。

之后秋招本来没有投简历,官网上自动帮我投的,测评我也没时间做,结果突然打电话给我说要给我面试,问我第二天有没有时间,还要准备电脑在线写代码,因为当时在准备转正答辩,而且很久没有刷题了,就觉得希望不大想推一推,结果对面很执着,就约的第二天晚上8点。

1、一面电话面   大约一个小时

自我介绍,说一下你实习做了上面,遇到了什么困难

jvm了解吗 ,那你说下垃圾回收都有哪些算法吧。

怎么确定一个对象是不是可以被回收呢

可达性分析,还涉及到四种指针

那你介绍一下四种指针分别说明时候用

竟然连四种指针都说不全了,想了一会,然后说到weakhahsmap,我说有ThreadLocal

那你再说一下ThreadLocal是干什么的,说明时候用

我大概说了一下,很多都记不清了。

线程池有了解吗,你介绍下线程池的几个重要参数吧

这块也想不起来了,完全没有状态,他提示了一下,然后我结合起来大概介绍了点

Java中的锁有哪几种

我说内置锁,显示锁

不是语法层面上的,比如偏向锁(应该是这个,记不太清了),你有听说过吗

我确实没听过,他说那这块算了,我又问了,你是指自旋锁这种吗

那你说说自旋锁吧,嗯独占锁也说一下,他俩的区别呢。轻量级锁和重量级锁分别是哪个呢

我大概说了一下

分布式常用的框架有了解吗

没有

大数据呢

没有

Linux怎么样,内核了解过吗

没有,只停留在使用层面

好,那做两道算法题吧,在codepad上面

第一道,先写个简单点的,反转链表吧。

刚才比较简答,写个稍微难点的吧,描述了一会,是全排列,我也写出来了

最后还有个问题,给你个场景,你说下思路就可以:数据库,有很多元数据库,再同一时间从中央数据库查询数据,这样对中央数据库瞬间压力比较大,你有什么解决办法呢?

我说某个节点先复制数据,复制之后其他节点就从这个复制完数据的节点复制数据,这样就可以log形式完成数据的复制。(他开始说是查询,不过我回答的好像是复制了)

他说还有没有其他方法呢?

我说可以参考有些数据库备份是备份所有的操作指令,如果中央数据库记录所有的指令,然后将这些操作指令发给其他节点,其他节点再执行这些指令,那么最后他们的数据应该也是一致的。

然后他也没说什么,说你还有什么问题吗

我问了一下,他们是阿里巴巴集团下面的数据库的部门,还说了很多专业术语,不过我对数据库了解实在太有限根本没懂,大概意思就是他们的数据量和传统的根本不在一个量级上。对员工的要求就是了解高并发低延迟,对数据库感兴趣。

如果现场写,我估计连一个sql语句都写不出来,数据库应该是我的短板了,结果还来了个数据库部门,不知道为什么会看上我的简历。

秋招第一面就是阿里,完全没有状态,很多概念都忘了,不过算法题倒不是很难,感觉面的很一般,加上我对数据库的掌握实在太有限,第二周发现已经被回绝。

作者:paine1690

本文来源于牛客网

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据

快速数据管道设计:通过交换表更新各个事件决策

在 VoltDB(这是一种数据库) 经常使用到的术语,快速数据管道(Fast data pipeline),这是一种全新的现代应用程序 —— 这种应用程序将流式...

28870
来自专栏Hadoop数据仓库

HAWQ取代传统数仓实践(十)——维度表技术之杂项维度

一、什么是杂项维度         简单地说,杂项维度就是一种包含的数据具有很少可能值的维度。事务型商业过程通常产生一系列混杂的、低基数的标志位或状态信息。与其...

33890
来自专栏方盼的专栏

基于知识图谱算法的网络故障智能诊断探索

17年这波AI浪潮推动着各行各业在进行着智能化和AI+的尝试,而当前业界在网络故障智能监控诊断这块到目前为止还没有可参照的成熟案例。知识图谱相对于很火的深度学习...

81230
来自专栏程序员的碎碎念

分享几个我经常用到的函数

同上一个推送一样,为了提高php开发的效率,在学习完一些零零碎碎的知识外,我们要学会的那就是总结与分享,学会封装类和函数,方便下次你再次敲此功能代码。在...

37860
来自专栏Golang语言社区

转--我们为什么选择Golang重构Worker系统

之前发了一篇帖子,讲了暴漫用golang重构了worker系统,有好多朋友问到语言选择的问题。 其实在用Golang重写我们的worker系统之前是做过很多调研...

44750
来自专栏Python爬虫实战

Python爬虫之六:智联招聘进阶版

运行平台: Windows Python版本: Python3.6 IDE: Sublime Text 其他工具: Chrome浏览器

27110
来自专栏逍遥剑客的游戏开发

面向对象vs面向数据

35340
来自专栏QQ会员技术团队的专栏

Unity引擎与C#脚本简介

本文基于 Unity 游戏开发引擎,主要会讲两部分内容:第一部分简单讲讲游戏开发的原理,第二部分会聊聊 Unity 的 C# 游戏脚本。

1.4K90
来自专栏Spark学习技巧

第1篇:数据库需求与ER建模

数据库需求与ER建模 前言 在数据库建设过程中,哪一步最重要?绝大多数资料会告诉你,是需求分析阶段。这一步的好坏甚至直接决定数据库项目的成败。 需求分析阶段,也...

52570
来自专栏MyBlog

软件工程攻略

由于软件的开发存在这么多的问题, 其主要原因是规模太大并且缺少一种有效的方法来进行整个软件的开发 从而引出软件工程

12020

扫码关注云+社区

领取腾讯云代金券