阿里巴巴校招offer面经

上有需求,看校招需求:https://www.uxuqiu.com/128-1

一、前段时间参加阿里巴巴校招

非常荣幸,很快就拿到了offer,经历了三轮技术面试和一轮hr面,面试官们都非常nice,在此感谢一下各位面试官,你们辛苦了,百忙之中抽时间面试!为了帮助更多人想进阿里巴巴的同学完成梦想,特此整理了一下面试的问题,给大家一些建议,希望大家也能成为阿里巴巴的一员。

一面,主要注重基础,问得很深很广,压力面试。

1.hashmap、concurrenthashmap底层实现和区别
2.spring框架的原理
3.如何写一个orm框架
4.hibernate一级缓存和二级缓存,hibernate其他缓存
5.hibernate事务传播行为种类
6.springmvc原理
7.restful的好处
8.restful有几种请求,表单如何提交put请求
9.web中安全性问题的考虑,如何防止
10.web系统整体架构
11.hibernate如何实现声明式事务
12.java并发包
13.volatile
14.平常都看哪些书
15.spring底层数据结构
16.如何进行反射,如何提高反射的性能
17.如何实现java的代理,为什么需要实现接口
18.TCP协议三次握手
19.springmvc用过哪些注解
20.springAOP可以使用哪些代理,有什么区别
21.为什么要分三层

22.mybatis与hibernate有什么区别,为什么不用hibernate直接写sql语句?

这面没有准备好,广度和深度压力很大,建议大家多看看三大框架源码、原理,并发包。

二面注重于项目

1.什么是restful web service?
2.并发集合包?
3.项目中使用了哪些数据结构?
4.TCP中断连接四次挥手?
5.MD5加盐
6.https
7.支付宝接口开发
8.知道哪些锁,有什么区别?
9.依旧JDK源码

10.项目遇到什么问题,怎么解决?

11.JDK1.8有什么新特性?

12.创建一个新线程有几种方式?有什么区别?

也许是觉得一面已经问了很多了,这面又答得比较不错,20分钟就结束了,30分钟出了结果。

三面聊人生

leader人very nice,给了一些建议,可能是觉得技术差不多,这面基本没怎么问技术,主要是职业发展、IBM的实习内容之类,我想大家可能也都有自己的想法,18分钟。

hr面聊成长经历

非常幸运,一小时之后hr姐姐就打电话来确定offer了,hr姐姐非常nice,非常和蔼开朗的姐姐,聊了一下对B2B的认识和自己的技术成长历程。

二、《阿里2019实习生面经》
原文:https://blog.csdn.net/qq_35603331/article/details/82633042 

经过两次尝试顺利通过了阿里的应届生面试,马上进入实习阶段,这里把面试经验分享给大家,希望给即将实习的同学一点帮助。 
第一次面试的是阿里的实习生,公司是蚂蚁金服,有师兄内推,具体职位是分布式调度,一共过了三轮面试,最后拿了B+。 
时间过了比较久了,所以具体哪些知识是哪轮面得有点记不清,这里就随便说说了,还请见谅。 
一轮面试问了hashmap,具体项目,还有虚拟机,虚拟机这时候我还没学,估计导致的减分不少,其他记不清了。 
二轮面试面了分布式的很多东西,还有tcp/ip三次握手四次挥手,以及不少的虚拟机,这时我已经学了不少虚拟机和分布式的东西,所以结果不错,如果tcp/ip握手那里记得更详细,可能会更好,比如说ACK/FIN以及相应的序号等等,我当时只记得三次握手和挥手间都是通过连续的序号进行关联的。 
三面面试官问了一个数据库访问一致性的问题,问什么时候两个数据库会出现数据不一致的情况,答案有几个,其中之一是向从数据库写数据时从数据库网络断了,这时无法判断是不是写入成功了。另外问了虚拟机的垃圾收集,还有分布式的负载均衡等等。 
三面结束以后以为稳了,但是过了两三周没结果,最后状态变成了已回绝。据说是因为同级别的研究生比较多,结果凉了,说白了就是实力还差一点。但是这时另外一个部门的大哥联系了我(我们之前不认识),说看了简历觉得还不错,可惜拖得太久了,招人时间过了。。。。。应该说是我的幸运吧,这个大哥确实给了我很大帮助。

后来又内推了一次,这次内推的部门是菜鸟(其实内推的时候不知道部门是啥),内推人就是上次那个大哥,岗位是java研发。 
第一轮是视频面试,然而我电脑摄像头坏了,所以改成了电话面,具体内容记不太清了,只能说因为是第一轮的关系,面的比较浅,没有涉及虚拟机分布式方面的东西。 
第二轮是电话面试,这次面的很详细,包括具体项目中用到的三层结构DAO,Service,Controller,以及浏览器访问网页到服务器发回响应的具体过程,cookie窃取导致的session劫持,以及解决方法(服务端设置httponly),还有如何应对拦截报文导致的信息泄露,我回答的是利用https进行加密处理。之后又问了设计模式相关的东西,我对设计模式了解一些,但不是所有的都很清楚,主要是观察者模式,工厂模式等。之后面试官发了个邮件,直接来了个在线测试,题目是简单实现观察者模式。这个自然没问题,维护一个listener队列,事件发生就遍历调用接口方法即可。

第三轮可以说是非常懵逼了。二轮过了一段时候后的一天早上,HR突然给我打电话说到北京当地面试,面试专场时间到当天24:00就结束了,这是最后一天……..别管啥情况,我立刻买了票到北京,终于在约定的时间前到达指定地点,然后负责技术面的面试官还没来,先跟hr聊了会,倒是没问啥特别的,不知道是不是常规hr面都这样。。。不过hr是个美女啦,也比较好说话,感觉运气不错。后来面试官来了,第一个问题是讲解我做过的一个项目,用一个小白板加彩笔演示。具体涉及到了需求分析,原型图设计,数据字典设计,前后端对接,各种框架比如springboot,mybatis等。之后面试官设计了一个场景,输入关键字,同时在三个引擎搜索,然后返回结果,要求返回时间在0.2s,不管搜到多少都必须返回,同时如果0.2s内就查询到了所有结果,也要尽快返回。毫无疑问是个多线程的场景,我的思路是把所有返回结果都存到一个json里,开三个线程分别查询,查到了就把结果放到json里,键事先定义好,为了避免返回时正在往json放数据,可以用一个CopyOnWrite锁来限制一下(虽然我没实际用过这个锁),另外把一个标识有多少个搜索引擎完成任务的标志位+1。主线程可以用一个定时器,0.2s后把某个标志位设置一下,然后sleep,每隔一段时间检查是任务完成数,都完成了直接返回,没完成但是时间到了也返回。(当然用notify唤醒主线程可能会更好)。 
最后问了数据结构相关的问题,主要是hashmap和treemap,以及各自特点和应用场景。这个属于比较常规了,没什么问题。最后问了红黑树的有序遍历,我假期自己实现了一遍红黑树,这里稍微想了一下,就用递归实现了,使用二叉树的中序遍历即可。 
然后就是问面试官问题的时间了,最后面试官说等进一步通知,然后送我到了电梯口。总的来说感觉很好,但是成不成功还要看情况才行。 
过了不到一个礼拜吧,来了个电话,问什么时间能去实习啥的,感觉基本就是稳了,又过了两天正式确认电话就来了,之后还有个录用喜报,同意的话就算是进入实习阶段了。
 

猜你喜欢

转载自blog.csdn.net/guuger/article/details/89668878