阿里和蚂蚁 Java 面经

某同学暑期实习面经,阿里和蚂蚁金服的 Java 岗位。整体难度还是比较大的,很多场景题。相比于常规的面试题来说,场景题还是比较能考察面试者实际能力的。

下面是正文。

自我介绍
本人本硕某末流 985,3 月投递了阿里和美团,因为 base 地原因拒掉阿里意向后转手投递了蚂蚁金服,目前已经拿到蚂蚁意向。

准备过程
从研一开始断断续续刷题,题量很大,所以笔试一般都比较顺利。主要是从去年十月开始系统性学习 java,八股方面基本都是跟着 javaguide(javaguide.cn)看的,另外也看了《Java 并发编程的艺术 》以及《深入理解 java 虚拟机》两本书籍。项目选择的是小型的单体电商秒杀系统,因为做的很水就不细讲了。

面经
阿里一面(0314)
1、介绍一下简历上的那个项目,有什么实际应用场景?

2、讲一下电商秒杀那个项目,怎么解决超卖?

3、已经用了 MQ 了为什么还会出现 mysql 连接数过高,怎么优化 mysql 的性能瓶颈,怎么分库分表?

4、讲讲缓存击穿、缓存雪崩、缓存一致性,分别用什么方法解决?

5、雪花算法、分布式锁 。

6、乐观锁与悲观锁。

7、创建对象的几种方式(只答了 new 和反射,没答全)

8、这三行代码 jvm 做了什么事情

String a = “123”;

String b = new(“456”);

String c = a + b;

9、怎么释放一个用完的大对象的内存空间?

10、讲讲 SpringIOC 的控制反转。

11、MySql 怎么删除数据。

12、delete 和 truncate 的区别(不会)

13、写查询语句的时候应该从哪些方面考虑来注意性能。

14、什么是联合索引,为什么要建联合索引?

15、讲讲 ARP,ICMP

16、什么时候不用查 ARP 表

17、ICMP 是哪个路由器回的,什么地方用了 icmp,traceroute 怎么做的。

阿里一面笔试(0315)
100g 的文件,每行一个 url,机器 4g 的内存,统计出 top100 的 url 并输出为一个新的文件。

阿里二面(0317)
1、介绍一下 JVM 的内存区域?

2、对象的生命周期(new 一个对象的过程)?

3、介绍一下 volatile?

4、怎么获取子线程的返回值?

5、子线程抛异常,主线程 try-catch 是否可以获取到异常 。

6、讲讲 jdk 动态代理。

7、有一个程序占用大量 cpu,并且一直运行,怎么排查?

8、Spring 容器的启动过程

9、@Autowired 和@Resouce 的区别?

10、a,b,c,d,四个字段,查询语句的 where 条件 a=b,orderby c。(mysql 翻页越翻越慢怎么优化,满足 a=b 的字段很多,怎么高效的排序,分页查询)

11、sql 题:一个学生成绩表,里面有学号,科目,成绩,统计出总成绩前十个的学号。

12、SQL explain 会输出哪些信息?

13、redis 批处理?

14、介绍一下电商项目?

阿里三面(0327)
1、什么是 gc,gc 怎么排查,怎么手动让 JAVA 虚拟机 OOM

2、sql 怎么手动加锁

3、hashmap,为什么要转成红黑树,不是一开始就用(红黑树的缺点)

4、什么时候会有内存泄漏,怎么排查

之后就是各种电商项目细节

蚂蚁一面
1、为什么学后端开发?

2、第一个社项目为什么做了一年多,是兴趣还是老师的任务?

3、是基于场景去学习的技术还是只是单纯的想去学习一些技术?

4、那些项目是和别人合作的?

5、看你电商只做了四个月,现在还在做吗?

6、性能压测怎么做的,性能如何?

7、电商项目是怎么做需求分解设计实现的?

8、缓存怎么设计的?

9、电商的核心对象模型设计?

10、JVM 的内存模型?运行时是怎么运作的?

11、JDK8 的新特性?

12、Hashmap 源码看过吗?讲讲 hashmap 怎么实现的?

13、线程池使用的注意事项?是不是线程越多越好?

14、分布式系统的一致性怎么保证的?(不会)

15、介绍一些 mysql 底层结构?

16、mysql 设计索引的注意事项?

17、双向链表的缺点?

18、设计模式了解哪些?

19、linux 系统使用过吗?用过哪些命令?

20、平时自己写博客吗?为什么不写?

21、合作做项目的时候和别人产生冲突,或者想法和别人不一样的时候怎么做?

蚂蚁二面
时间很短,5 分钟就没记录了

蚂蚁三面
1、具体介绍一下简历中的比赛(比赛类型,组队情况,分工情况)

2、比赛中为什么成绩没有特别好,是哪里做的不好,赛后有没有继续去思考更好的方法?

3、毕设开题了吗,最后要发论文还是写个专利?

4、具体介绍一下毕设项目(项目的难点,分工,创新性)

5、毕设的方法和其他方法比有哪些优化

6、项目是用什么语言写的?代码的设计?分为了哪些模块?

7、大文件怎么处理的?使用文件流,有没有考虑断点续传?

8、功能性测试是怎么做的?(比如效率,结果)

9、代码的异常测试做了吗?做了大量的测试来测试异常吗?

10、如果毕业了以后项目没做完?程序的可扩展性如何?

11、数据怎么获取的?

12、为什么没有继续做老师的项目,反而来找互联网的工作?

13、是不是保研的?考研为什么不考计算机?

14、怎么学习计算机课程知识的?

15、做比赛时合作的集成阶段和单人开发有什么区别?

16、集成测试怎么做的?

17、比赛的时候是怎么和队友沟通的?

18、为什么选择后端?哪方面吸引你了?

19、实验室的项目和比赛的项目对你自己的能力有什么提升?

20、上个面试官问你分布式你说的不会,后来学习了吗?你怎么理解分布式事务和事务的区别?

21、分布式电商系统会遇到哪些分布式事务的问题?

22、怎么保证集群的一致性?

23、了解过蚂蚁的 oceanbase 吗?

24、你之前 mysql 怎么加锁的?

25、有投其他公司吗?阿里云投的哪个部门?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wis57

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值