阿里一面:

1:自我介绍

2:面:谈谈你做过项目中印象较深或自认为做的比较好的地方?

答:我觉得我在Xx做的不错,用了XX需求实现XX功能,性能提高了N倍…等噼里啪啦的说了一堆。

3:面:你说使用到了AOP,能谈谈它的实现原理嘛?

答:它是依靠动态代理实现的,动态代理又分为JDK自身的以及CGLIB…

4:面:嗯,能说说他们的不同及优缺点嘛?

答:JDK是基于接口实现,而CGLIB继承代理类。。。(就是这样会直问下去,如果聊的差不多了就开始问一些零散的问题)

5:JMM内存模型,如何划分的?分别存储什么内容?线程安全与否?
6:类加载机制,谈到双亲委派模型后会问到哪些违反了双亲委派模型?为什么?
7:为什么要双亲委派?好处是什么?
8:平时怎么使用多线程?有哪些好处?线程池的几个核心参数的意义?
9:线程间通信的方式?
10:HashMap的原理:当谈到线程不安全时自然引申出ConcurrentHashMap,它的实现原理?
11:分库分表如何设计?垂直拆分、水平拆分?
12:业务ID的生成规则,有哪些方式?
13:SQL调优?平时使用数据库有哪些注意点?
14:当一个应用启动缓慢如何优化?
15:对乐观锁和悲观锁的理解;

其他的想不起来了,大概是以上这些,最后还简单的聊了之前做过得项目上的问题,
结束之前告诉我之后会换一个同事和我沟通,听到这样的回复一面应该就这样过了。

一面小结

首先确认对阿里的意向度(如果异地更会考虑对工作地点(杭州)的意向度!阿里很看重这个);

其次面试官一般会针对您所做过的项目来做具体技术的交流,会比较关注个人对项目细节是不是掌握到位,

主要考察java的技术基础和原理,比如Spring框架以及数据库和JVM三个方面,也会交流到分布式、线程池的实现等等

重点考察是不是有比较钻研技术和技术上的亮点【不一定每个面都很厉害但一定要有亮点】

阿里二面

1:变着法的问了一大堆线程池的知识 (主要考对应的参数)
2:java内存模型
3:lock和synchronized的区别
4:B+树和B-树的区别
5:复合索引
6:聚集索引和非聚集索引的区别?
7:数据库索引 主键和唯一索引有什么区别
8:索引失效条件,什么时候该建立索引
9:innDB和MyISAM的区别?
10:线程安全(阻塞同步,非阻塞同步,无同步)
11:说说Java 类加载过程?
12:描述一下 JVM 加载 Class 文件的原理机制?
13:GC 是什么? 为什么要有 GC?
14:简述 Java 垃圾回收机制。
15:如何判断一个对象是否存活?(或者 GC 对象的判定方法)
16:垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
17: stop() 和 suspend() 方法为何不推荐使用?
18:sleep() 和 wait() 有什么区别?
19:同步和异步有何异同,在什么情况下分别使用他们?
20:简述 synchronized 和
java.util.concurrent.locks.Lock 的异同?
21:请说出你所知道的线程同步的方法。
22:什么是线程饿死,什么是活锁?
23:什么是 ThreadLocal?

二面小结

根据项目深入的了解技术实力,了解您的知识面,了解您的问题解决能力以及技术灵活运用能力,也通过这一过程考察团队合作能力、学习主动性和创新性,可以挑选2-3个做过的有典型性的项目做一个仔细技术回顾和自己独到的理解【这会成为您的加分项】;

阿里三面

1:关于Java异常的续承层次结构,讲述异常的续承关系;
2:java线程如何启动?java中加锁的方式有哪些,怎么个写法?
3:对乐观锁和悲观锁的理解;
4:JVM中堆是如何管理的,JVM的内存回收机制,介绍一下
5:redis缓存和memcached缓存的区别,以及各自的优劣势
6:微服务架构:dubbo和springcloud的区别,以及各自对应的使用场景。
7:线程池如何做负载均衡
8:如何设计单点登录,说下单点登录的原理
9:synchronized的实现原理?Volatile能保证原子性吗?为什么?
10:讲一下GC?
11:.TCP三次握手,为什么三次握手?
12:mysql死锁,怎么解决,如果不要求执行顺序,死锁怎么解决
13:你觉得阿里巴巴怎么样?
14:你对996你有什么看法呢?
15:说下你的强弱点

三面小结

他们最后的高管复试会涉及到相关的技术问题,大部分是对你的整体价值观做宏观的把控(比如上进心,责任心,心态,工作激情等)

HR确认面

基本就是从大方向了解一下您的心态、抗压能力,工作中的角色、未来大致的规划以及对阿里的意向度

【技术基础以及的问题多看看书准备下就行了,不懂的直接说不懂没关系的;在项目细节上多把关一下,根据项目有针对性的谈自己的技术亮点,能表达清楚,可以引导面试官来问你比较擅长的技术问题,个人就可以尽情发挥】

阿里比较喜欢的人才特点:对技术有热情,强硬的技术基础实力;主动,善于团队协作,善于总结思考


拼多多一面

1、给一个函数,返回 0 和 1,概率为 p 和 1-p,请你实现一个函数,使得返回 01 概率一样。

2、10 亿个 url,每个 url 大小小于 56B,要求去重,内存 4G。

3、把一个 bst 转化成一个双向链表。

4、http 和 https 区别,https 在请求时额外的过程,https 是如何保证数据安全的。

5、IP 地址子网划分。

6、POST 和 GET 区别。

7、硬链接和软连接区别。

8、DNS 解析过程。

9、kill 用法,某个进程杀不掉的原因(进入内核态,忽略 kill 信号)。

10、linux 用过的命令。

11、系统管理命令(如查看内存使用、网络情况)。

12、管道的使用。

13、grep 的使用,一定要掌握,每次都会问在文件中查找。

14、shell 脚本。

15、find 命令。

16、awk 使用。

拼多多二面

1、Linux 下的一些指令,(进程id), (进程 id),(进程id),?(上一条命令退出时状态),怎么查看进程,按照内存大小,CPU 占用排序等等。(大写 M 和大写 P)。

2、http 的 get 和 post 方法。

3、介绍下你所了解的 epoll。

4、数据库 sql 的了解程度。

5、项目中遇到的问题,自己咋解决的等等。

6、手写一个全排列。

7、B树和B+树。

8、介绍一下 Hash,怎么解决冲突。

9、进程间的通信,共享内存方式的优缺点。

拼多多三面

1、说下你平时看的一些技术博客,书籍。

2、linux 下的一些指令。

3、工作中你觉得最不爽的事情是什么。

4、说下你的优缺点。

5、有没有想过去创业公司。

6、写个 strcpy 函数。

7、说说你自己的性格。

8、给你一个系统(面试官好像是无人车部门的),后台的逻辑已经实现了,但是前端加载很慢,怎么检测。

9、以后可能要学习很多新技术,你怎么看。

10、项目中遇到的困难(提前想好,并且把实现或者优化方法说清楚)。

11、系统的量级、pv、uv 等。

12、应对高并发的解决办法(分布式)。

13、在项目中主要负责了哪些工作。

14、nginx 的负载均衡。

15、分布式缓存的一致***器如何扩容(哈希环)。

读者福利

分享一下我自己收集整理总结的大厂高频面试题目(含答案解析)希望能帮助粉丝朋友们拿到心意的offer。

有需要获取以上面试资料的粉丝朋友们,一键三连后