阿里面经汇总

天涯浪子 提交于 2019-12-10 15:29:32

网友1

1.自我介绍

2.项目中的问题

3.Java类加载器有哪些

4.Java反射机制及应用

5.Synchronized底层实现,4种锁

6.Full GC,Minor GC

7.redis主从复制

8.thrift RPC原理

9.cookie session区别

10.如果登陆了如何其他服务器知道

11.SSO原理,应用场景

12.有什么问题问我吗?

网友2

阿里一面(新零售)一小时左右

1.自我介绍

2.学到数据结构,常用的有哪些,

3.数组和链表的差别,进行频繁插入和删除用哪个

4.如何进行查找,二分查找,还有其他的吗(hash,b树,当时没想起来,之后又补充的)

5.树有哪些树,说下B树的实现原理(如何分裂节点

7.栈和堆的区别

8.给了千万级数据,怎么进行查找(答:hash,多级hash,类似java的HashMap

9.说到HashMap,说下在java中的实现原理,线程安全吗,线程安全的有什么(hashtable,concurrenthashmap)

10.list都有哪些,ArrayList和LinkedList的区别

11.java的这些内存都是怎么分配的,jvm模型

12.类加载,双亲委托加载

13.java的 == 和equals方法的区别。

14.用的java版本1.8,和1.7有什么区别(不知道。。说了concurrenthashmap的区别,他就让具体说一下

15.都有那些琐,说两个synchronized和 ReentrantLock,问怎么实现的,答得不好

16.能介绍你一个你的项目吗,问答网站项目 blabla

17.因为你这是基于BS模型,服务器是啥(tomcat)它在项目中起到的作用(监听端口,接受请求)

18.用过其他的服务器吗,tomcat底层怎么实现的!这个问题没听说过。。

19.http请求,就说到了get和post的区别

20.用到了Redis,都用来储存什么,还了解那些缓存结束,这个没回答好

21.Redis都有哪些数据结构

22.mysql都有哪些引擎,说了innodb和myIsam,问我还知道其他的吗。。根本不知道

23.你用了springboot,为什么要用它(我也不知道其他管理整合ssm的框架了)

 

阿里二面(已挂,40分钟左右,自己没准备好)

  • 先说说文件操作吧,给你一个保存key=value的文件,怎么读取
  • 说了普通的读取文件,字符串识别,好久没用Property,之后给提示了
  • 给你一个int类型的值,怎么转化为String
  • 项目中的异步队列怎么实现的,然后问到了处理消息失败怎么办,没考虑全面
  • 线程池相关(答的不好)
  • HashMap的实现原理,问到扩容,可以是1.5倍吗
  • ConcurrentHashMap的实现原理,1.7和1.8的区别
  • 为什么转行,在学习过程中遇到的最大的困难是什么?
  • 有遇到过OOM吗,怎么解决的,具体说下JVM怎么造成OOM的
  • linux查看一个文件末尾几行的命令(tail)
  • 怎么查看含有某个关键字的几行(grep),具体怎么写命令
  • 给你一个文件里面有好几列,怎么用命令统计某一列的和(不会。。)
  • 有什么问题问我

网友3

作者:牛客9682126号
链接:https://www.nowcoder.com/discuss/223053
来源:牛客网

【干货】特别的分享一个很简单的面试技巧,就是把面试当做一次交流或者把你当做老师来给面试官讲课,这样的话你就会想着说怎么才能讲的更清楚,有哪些注意点要着重讲的?这么来讲,思路非常清晰明了,是加分项

第一轮(简历面) 

问博客

问项目

网络七层模型和五层模型

三次握手和四次挥手

为什么是三次握手和四次挥手?

ArrayList和LinkedList的区别

hashmap如何解决hash冲突

ConcurrentHashMap

一致性Hash

JVM内存模型

类加载机制(讲了差不多10分钟,讲的比较详细)

GC过程(讲了10分钟,讲的比较深入)

Spring和redis源码(直接说我没看过,不过没关系,其他方面来补。面试不是说你每个问题都答得出来,而是你答的深入有靓点,这样才能让面试官信任你说你在某些方面非常有自己的造诣和见解。面试官当场说让我准备下一轮,并且根据其他面试官的信息,这一轮我的评分还是挺不错的哦,所以大家真的不要认为每道题都要答得出来。)

熔断原理

手撕写代码(leetcode原题,具体忘了)

 

比较基础的题目,如果想得到高分的话,不是能够回答出问题就足够了,而是能够深入到原理和底层去回答,这样才能突出你的个人优势。在面试中,有自己的个人见解绝对是最加分的一点!总共面了40分钟。

 

第二轮 

项目

会根据项目引申出一些问题,让你来想如何解决问题

平时和同事的冲突和矛盾如何解决(相处矛盾和技术矛盾都问)

JVM调优(本人的靓点,讲了15-20分钟)

TCP和UDP

高考成绩,英语四六级

最后还给面试官讲了一点人生哲学,这一点也很加分,面试官估计是被我打动了

给你一个5L和6L的杯子,如何得到3L水(逻辑题)

 

差不多就这些问题吧,项目聊了很久,一定要认真准备项目。项目很差或者答不出来你简历写的内容,这一轮必挂。非常重要的一点,没有把握的东西一定不要写进简历里去(比如说分布式、高并发之类的,如果你写进了简历,面试绝对有高难度的连环炮攻击,没有把握的东西一定不要写进简历,没有把握的东西一定不要写进简历,没有把握的东西一定不要写进简历!!!!本人这块比较有心得和自己的见解,因此毫不犹豫地写进简历)。面试官的连环炮攻击扛不住,这一轮估计就GG了。总共面了1小时20分钟。

 

第三轮 

项目

为什么要用这些技术

引入这些技术是为了解决什么问题以及带来了什么问题

如何查看是否为timewait状态?

进程和线程

进程和线程间通信

为什么不用zk做注册中心?Dubbo和springcloud的区别?(因为本人学的是springcloud系,所以真的对dubbo很不熟悉,面试官怼了几个dubbo相关的问题,我也只答出来一两个点,不过没关系,确实自己没有深入了解过,直接跟面试官坦白说自己没有学过,然后展示自己的优势。虽然这一两个问题回答的不是很好,但是其他方面我很有自己的见解和靓点,所以就得到了很高的评价,比如说基础扎实,项目经验不错,带过团队等等)

限时、熔断、隔离的设计

设计一个MQ(还要求能控制超时)

算法:几亿用户,需要根据淘宝的淘气值对用户进行排名

 

第三轮总体来说偏难,最重要的一面,也是最容易挂的一面。这一轮只能靠平时的积累了,非常考验内功的一轮,所以不要有侥幸心理,平时多学习才能真正扎实自己的基本功!总共时长1个多小时。

 

第四轮(HR面试) 

HR常规问题,真实回答就好了。

 

其他 

本人没有交叉面,不知道具体什么情况。几轮面试下来,唯一的遗憾就是没能给面试官讲源码,他们好像不太感冒,所以就没问太多了。第三轮准备主动出击讲源码的时候,面试官一直不给我讲,没办法。。。可能他相信我读过源码了吧,想重点问其他问题。

我面试流程特别快,8/4号开始面试,8/13号结束。总共9天,其中有4天是周末,5个工作日就完成面试了。阿里的效率还是挺高的。

网友4

作者:lollipop��
链接:https://www.nowcoder.com/discuss/224321?type=2&order=0&pos=5&page=1
来源:牛客网

  • 自我介绍
  • 介绍自己的项目
  • 项目难点,怎么解决的(2333不会说,就说自己实习的一些小问题)
  • Java里的集合类型,说了ArrayList、LinkedList、HashMap的底层
  • 介绍自己那个电商项目,啥都没多问2333
  • String和StringBuffer的区别
  • UDP和TCP的区别,以及和Http的区别
  • Spring AOP的理解
  • Spring Cloud的理解
  • 算法题:一个小球从100米高空掉下来,每次弹起之前一半长度,求第10次落地时经过的距离
  • 算法题:最长不重复子串(2333)
  • 写个SQL,表中有班级字段、分数字段,查询出班级和班级的平均分数。

 

网友5

作者:reway
链接:https://www.nowcoder.com/discuss/218865?type=2&order=0&pos=7&page=1
来源:牛客网

1. 问项目

2. 问算法,堆排序,冒泡排序(突然不会算法了)

3. 实践题,100 个商品 6 个仓库,怎么分配!(选一个合适的算法,尴尬呀,100/6 我居然算出 13,失误失误)

4. OOM 异常

5. 你的 Mysql 用来做什么

6. Mysql 索引

7. zookeeper 架构

8. zookeeper 原理

网友6

作者:金鹏201903071839583
链接:https://www.nowcoder.com/discuss/223721?type=2&order=0&pos=8&page=1
来源:牛客网

1.讲实习过程中做的项目(引出了rpc调用网络异常或超时怎么处理,引出了MQ,之后设计一个消息中间件,在面试官的各种引导下说了出来)
2.springboot ioc 两个依赖注入注解的区别(这个不知道!)
3.讲了一下大创项目,涉及到爬虫,问了怎么解决循环爬取的,用redis存已经爬取过的url,说了ES(只是用过没有深入了解过)
4.nginx项目中主要解决问题,问了反向代理和正向代理,根据我的项目说了一下分布式的项目,问了一下负载均衡策略。竟然问到了jsp(懵逼)
5.问了jsonp为什么用,又说了node.js,说到了http协议,常见的状态码,又问到了restful规范,问到了get post put等,session和cookie 的区别,分布式的单点登录
6.git的使用,怎么避免代码冲突,怎么回退代码,问我有多少种回退机制(不太记得了)
7.Java(终于问到Java了)gc大致讲了一下,老年代,年轻带等等,问了oom内存泄漏(什么情况下出现OOM)提到Java全局的缓存怎么处理防止OOM当时卡了一下懵逼了,然后说到LRU经典的淘汰策略等等!
8.设计模式有了解么(大致说了几个)
9.for循环能删除list元素么?
10.一个算法算两个用户购买商品的轨迹,计算轨迹的相似度(基本属于傻瓜式回答)
11.你有什么想问我的吗?
总体感觉很好,面试谈很会引导希望能有二面机会吧

 

网友7

作者:苹果味的旺仔
链接:https://www.nowcoder.com/discuss/224078?type=2&order=0&pos=9&page=1
来源:牛客网

昨天刚吃完饭正在看动漫,一个电话突然打过来开始面试,面试小哥挺好。
刚开始说了项目,但我的项目比较垃圾,所以没有太说,因为我说到了高并发,所以就开始问我

1.谈一谈高并发,说一下ReentrantLock的应用场景,什么时候用CAS,什么时候用ReentrantLock,你是如何使用高并发的 ,说一下volatile,应用场景是什么
2.数据库的事务,四个隔离级别,不可重复读为什么会产生幻读,怎么解决
3.数据库的索引,说一说B  树,与B树的区别,mysql为什么要用B 树,能不能用红黑树
4.说一下索引优化,如何确认这个索引合不合适
5.说一下Spring的AOP实现原理,他的应用场景,还有没有其他框架用到AOP
6.你都知道哪些设计模式,说一说工厂模式,应用场景,你的项目中有没有用到,怎么用的
7.接口和抽象类的区别,为什么要有抽象类
8.equals与hashCode的区别
9.什么时候用加了锁的HashMap,什么时候用currentHashMap
10.currentHashMap的实现
11.HashMap如何解决hash冲突
12.你了解那些排序算法,他们的时间复杂度和空间复杂度是多少
13.说一下GC的过程,收集算法,垃圾收集器
14.如何查看垃圾收集的状态
15.说一下JDK的内存分布,如何调整新生代和老年代的比例
16.JVM调优
17.Linux的软连接与硬链接

总体面了一个小时,感觉问的都是挺基础的,但我答的实在不好,而且他问了特别多的应用场景,可以看出阿里是很注重实践的。我问了面试官我这次面试有什么不足,他告诉我偏理论知识,实践不足,应该多参加一点商业项目,注重实践。果然我还是太垃圾了。

 

网友8

作者:苹果味的旺仔
链接:https://www.nowcoder.com/discuss/224078?type=2&order=0&pos=9&page=1
来源:牛客网

昨天刚吃完饭正在看动漫,一个电话突然打过来开始面试,面试小哥挺好。
刚开始说了项目,但我的项目比较垃圾,所以没有太说,因为我说到了高并发,所以就开始问我

1.谈一谈高并发,说一下ReentrantLock的应用场景,什么时候用CAS,什么时候用ReentrantLock,你是如何使用高并发的 ,说一下volatile,应用场景是什么
2.数据库的事务,四个隔离级别,不可重复读为什么会产生幻读,怎么解决
3.数据库的索引,说一说B  树,与B树的区别,mysql为什么要用B 树,能不能用红黑树
4.说一下索引优化,如何确认这个索引合不合适
5.说一下Spring的AOP实现原理,他的应用场景,还有没有其他框架用到AOP
6.你都知道哪些设计模式,说一说工厂模式,应用场景,你的项目中有没有用到,怎么用的
7.接口和抽象类的区别,为什么要有抽象类
8.equals与hashCode的区别
9.什么时候用加了锁的HashMap,什么时候用currentHashMap
10.currentHashMap的实现
11.HashMap如何解决hash冲突
12.你了解那些排序算法,他们的时间复杂度和空间复杂度是多少
13.说一下GC的过程,收集算法,垃圾收集器
14.如何查看垃圾收集的状态
15.说一下JDK的内存分布,如何调整新生代和老年代的比例
16.JVM调优
17.Linux的软连接与硬链接

总体面了一个小时,感觉问的都是挺基础的,但我答的实在不好,而且他问了特别多的应用场景,可以看出阿里是很注重实践的。我问了面试官我这次面试有什么不足,他告诉我偏理论知识,实践不足,应该多参加一点商业项目,注重实践。果然我还是太垃圾了。

 

 

网友9

作者:60594707
链接:https://www.nowcoder.com/discuss/223915?type=2&order=0&pos=10&page=1
来源:牛客网

1、项目中的hadoop是用来干嘛的
2、flume是用来干嘛的
3、说一下kafka
4、kafka如何保证不重复消费
5、kafka保证顺序消费吗以及为什么
6、说一下hbase
7、hbase和关系型数据库有什么区别?
8、hbase如何获取数据?答,通过rowKey。如何获取rowKey?
9、stringbuffer和stringbuilder的区别
10、stringbuffer如何保证线程安全?
11、synchronized的用法以及有什么劣势
12、synchronized可能造成死锁的场景
13、如何解决死锁?
14、使用lock锁时需要注意事项
15、hashmap、currenthashmap(后者是如何保证线程安全的)
16、说一下volatile
17、说一下threadlocal以及使用时有什么坑
18、b树和b+树的区别,为什么使用b+树,为什么说b+树要矮胖一些(假设内存足够大)
19、说一下数据结构中的图如何存储
20、spring中ioc的作用
21、spring中aop底层原理以及区别
22、如果一个类中的某个方法使用了final关键字,能够对这个类使用cglib代理
23、spring中Bean的生命周期以及aop是哪一阶段执行的?
24、单例模式有几种形式以及区别?
25、考察linux命令,给定一个文件,文件中每一行都由(时间,用户id,url)组成,每一行

表示这个网站被访问了一次,求这个网站访问的人数以及访问的总次数?

ps:首先,阿里面试官是真的好,有啥疑问尽管问,真的是很耐心的回答。

然后,阿里面试真的看中基础和深度,一问问题不大,二问就扛不住了,三问直接打死啊

网友10

作者:大猪蹄子201810161838419

链接:https://www.nowcoder.com/discuss/223865?type=2&order=0&pos=12&page=1

来源:牛客网

 

自我介绍

1.问了项目,分布式Session相关 怎么实现的 分布式session是为了解决什么样的问题  其他实现方式 禁用cookie怎么办

2.tcp 在哪一层 http在哪一层  详细说一下arp   网络考了多少分。。。

3.Htttp状态码

4.get put post 区别

5.mybatis #与$区别

6.cookie与session区别

7.为什么要三次握手

8.dos攻击怎么回事,怎么解决

9.说说jvm内存模型   垃圾回收机制,详细问了 CMS

10.问了实习期间做了什么 ,跟es相关,问了一些

11.详细讲一下快排,什么时候用快排什么时候用冒泡?

12.hashmap concurrenthashmap  hashtable 实现 区别   treemap 实现 ,红黑树相关

13.有什么想问我的

面试官太温柔,arp忘了还给我讲了一遍。。问了成绩排名 还有获奖状况

网友11

作者:来个大厂offer保命!
链接:https://www.nowcoder.com/discuss/223599?type=2&order=0&pos=15&page=1
来源:牛客网

时间:晚上7.43(不得不说这么晚还来面试可真敬业)

总共用时:31min19s

  1. 上来先介绍了一下是阿里飞猪BU的,然后问我方不方便,赶紧找个安静的地方准备开始
  2. 常规自我介绍
  3. 常用的集合类有哪些?说了List,Map,Set,然后举了两个例子
  4. 你刚才说的List和ArrayList是什么关系?
  5. ArrayList和LinkedList有什么区别?
  6. 在项目里有用LinkedList吗?什么时候用到的?
  7. 介绍一下Map?HashMap?
  8. 你刚才说的成环的过程能详细说一下嘛?
  9. HashMap为什么要用红黑树?
  10. 算法,求两个集合的差集?(思路)
  11. 你在项目中有自己写过什么数据结构嘛?比如说一个先进先出的队列?
  12. 开始问项目,秒杀逻辑整个过程说一下
  13. 打断一下,怎么样限制用户请求呢?
  14. 你这个锁的逻辑具体怎么实现的?
  15. 可以怎么样优化呢?
  16. 我这边问题就这些了,你有什么要问的吗?

完全没有准备,基础还能回答出来一些,项目被鄙视了...haha重在参与,重在参与

网友12

作者:木小果
链接:https://www.nowcoder.com/discuss/223144?type=2&order=0&pos=17&page=0
来源:牛客网

阿里面试经验:

1. 自我介绍

2. 介绍自己的项目,自己主要负责哪块,怎么实现,在项目遇到的最大的问题是什么,怎么解决的

3. struts2和springMVC 的区别

4. springMVC的请求流程,(https://www.cnblogs.com/mlq2017/p/9655832.htmlservlet和springmvc的前端控制器的区别(感觉spring还会问,就时框架的知识,最好多了解一点,不要只停留在会用)

5. 对于会话技术,cookie和session,知道多少,应用场景,为什么会这样用,(比如用来存用户信息,为什么要存,查数据库不可以么?)会话技术存在的意义(目的),感觉web开发相关的知识都应该了解,有自己的见解,不要qubei

6. 数据库相关知识点(忘了)

7. 数据结构了解多少,选自己熟悉的一个讲讲自己的理解(你把你锁了解的说出来),(比如说栈,应用场景)(树,二叉树,平衡树知道多少......)

8. 算法了解过么?(比如说简单的排序算法,自己了解过哪些,讲讲)(还有可能会问你各个排序算法之间的区别(比如:选择排序和冒泡排序有什么区别?))......

9. 计算机网络了解么?知道些什么?如果回答不上来,他会问你一个简单的,TCP三次握手.......

10. 你认为你相比于其他人有什么优势进阿里?你对于你进公司之后有什么期待?......

 

 

大约就是这些,因为我很多没有答上,所以就没有深入,要想进阿里,不光基础知识要深厚,而且最好有项目辅助,希望大家都可以找到适合自己的工作,加油鸭!!���

网友13

作者:NPC问题
链接:https://www.nowcoder.com/discuss/222684?type=2&order=0&pos=18&page=1
来源:牛客网

一面大概三十多分钟吧问的都是计算机基础Java没怎么问
排序算法,冒泡排序仔细讲一下,快排复杂度
常用的数据结构,怎么防止hash碰撞
网络OSI七层模型,tcp,udp哪一层,有哪些不同
QQ的属于tcp还是udp协议,直播是怎么实现的
数据库三范式,特性(ACID),又仔细问了持久性和隔离性
事务隔离级别,不可重复读的意义,可重复读的意义
实习相关,项目相关,项目里面redis用来干嘛,崩了怎么办,问了一下网站被频繁url访问攻击怎么办
还有一些忘了
闲聊,学习方式,有一些知识经常容易忘怎么办,有哪些优势
有什么想问的

二面57分钟,主要聊Java,项目和linux命令,还有一些无关技术的东西
一个整型怎么转换成字符串型,回答String.valueof(int)和直接在整型后面+空字符串,好像都不是想要的回答
Hashmap深挖
get的时间复杂度,put方法的逻辑,扩容是几倍,为什么,可不可以扩其他
是不是线程安全的,线程安全的是什么
ConcurrentHashMap原理
有没有用过ThreadLocal
Jvm内存模型
垃圾回收算法
有没有遇到过OOM异常,为什么会出现这个异常
选一个最熟悉的项目聊一聊,针对项目问了一些
Redis分布式锁
linux命令,搜索文件内容(grep脑子短路一下子没想起来真的气),对日志做统计什么命令
查看文件最后n行什么命令
最后问了些非技术问题
评价研究过的知识点都会,但是有盲点,建议多读源码,这是最好的学习方式

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!