2025 全新阿里巴巴 Java 面经汇总(附答案模板),建议收藏!

alt

钉钉一面

1.笔试(两道全排序)

[5380. 全排列]

给定一个没有重复数字的数组 nums,输出其所有可能的全排列。输出的排列不应包含重复的排列。

输入格式

一个整数数组 nums,其中不包含重复数字。

输出格式

每行一个排列,排列中的整数用空格分隔。

输入样例

▼text

1 2 3

输出样例

▼text

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

[5381. 包含重复元素的全排列]

给定一个可能包含重复数字的数组 nums,输出其所有可能的全排列。输出的排列不应包含重复的排列。

输入格式

一个整数数组 nums,其中可能包含重复数字。

输出格式

每行一个排列,排列中的整数用空格分隔。

输入样例

▼text

1 1 2

输出样例

▼text

1 1 2
1 2 1
2 1 1

2.java8有哪些新特性?

  • [421. JDK8 有哪些新特性?]

3.Object类中有什么方法,有什么作用?

  • [5908. Java Object 类中有什么方法,有什么作用?]

4.介绍下 Collection 接口

  • [444.Java 中有哪些集合类?请简单介绍]

5.HashMap、ArrayList 线程不安全如何解决?

使用线程安全的容器,例如 ConcurrentHashMap 和 CopyOnWriteArrayList 等替换。

或是使用 Collections.synchronizedMapCollections.synchronizedList 包装原来的容器即可。

  • [4946. Java 的 CopyOnWriteArrayList 和 Collections.synchronizedList 有什么区别?分别有什么优缺点?]

6.Spring AOP

  • [573. 什么是 AOP?]

7.Spring AOP 如何实现动态代理?

  • [574. Spring AOP默认用的是什么动态代理,两者的区别?]

8.在项目中用过哪些多线程类?

  • [480. 你使用过哪些 Java 并发工具类?]

9.RPC 有了解吗?

  • [732. 让你设计一个 RPC 框架,怎么设计?]
  • [155. 什么是 RPC?目前有哪些常见的 RPC 框架?实现 RPC 框架的核心原理是什么?]

10.分布式架构用过吗?如何使用分布式

  • [151. 什么是分布式?为什么需要分布式?]
  • [772. 什么情况下需要使用分布式事务,有哪些方案?]

11. 分布式锁有了解过吗

  • [分布式锁一般都怎样实现?]

12.双亲委派机制

  • [439. 什么是 Java 中的双亲委派模型?]

13.JVM 的栈堆 都是干嘛的?

  • [524. Java 中堆和栈的区别是什么?]

14.gc 中如何判断对象是垃圾?

  • [534. Java 中如何判断对象是否是垃圾?不同垃圾回收方法有何区别?]

14.JDK8后,JVM 有哪些变化?

  • [536. 为什么 Java 8 移除了永久代(PermGen)并引入了元空间(Metaspace)?]

15.智力题排列问题

  • [ 5326. 排列问题]

16.平时都怎么学习的

点击链接,获取更多大厂面经和答案详解。

阿里巴巴一面

Java内存区域

  • [523. JVM 的内存区域是如何划分的?]

事务的隔离级别

  • [606. MySQL 中的事务隔离级别有哪些?]
  • [585. Spring 事务有几个隔离级别?]

脏读与幻读的区别

  • [608. 数据库的脏读、不可重复读和幻读分别是什么?]

说下 MVCC

  • [604. MySQL 中的 MVCC 是什么?]

redo log 和 bin log 区别

  • [106. MySQL 中的日志类型有哪些?binlog、redo log 和 undo log 的作用和区别是什么?]

Spring 事务的传播机制

  • [586. Spring 有哪几种事务传播行为?]
  • [587. Spring 事务传播行为有什么用?]

AOP 的原理是什么

  • [573. 什么是 AOP?]

AOP 底层两个动态代理的区别

  • [574. Spring AOP默认用的是什么动态代理,两者的区别?]

Java 字节码

  • [5909. Java 字节码了解吗?]

设计分布式锁可以设计哪些接口

设计分布式锁时,常见的接口包括获取锁、释放锁、续期锁以及尝试获取锁。

1)获取锁 (acquireLock)

  • 尝试获取分布式锁,若成功则返回锁的唯一标识符,失败则返回获取失败的状态或进行重试。

2)释放锁 (releaseLock)

  • 释放已获取的锁,需要提供锁的唯一标识符和锁持有者信息,以确保释放的锁确实是持有者所持有的。

3)尝试获取锁 (tryAcquireLock)

  • 尝试在有限的时间内获取锁,若在指定时间内获取成功则返回锁的唯一标识符,失败则返回获取失败的状态。

4)续期锁 (renewLock)

  • 在锁接近过期时,延长锁的有效期。续期操作必须验证续期请求的合法性,即续期者确实是锁的持有者。

5)查询锁状态 (isLocked)

阿里菜鸟后端一面

对于给表创建索引,你会考虑什么?

  • [9805. MySQL 在设计表(建表)时需要注意什么?]
  • [1479. 在什么情况下,不推荐为数据库建立索引?]

哪些场景下索引是会失效的?

  • [598. MySQL 中使用索引一定有效吗?如何排查索引效果?]

你有自己去用redis去实现一个限流器吗?

  • [1190. 什么是限流?限流算法有哪些?怎么实现的?]
  • [34. Redisson 的 RateLimiter 是什么?如何在项目中实现分布式限流?你的限流策略是什么?]

你有用过一些中间件吗?

详细介绍一下线程池的工作流程?说一下线程池的核心参数?如果核心线程、最大线程都在工作,队列也满了,这时候来了个任务,此时会发生什么?

  • [472. 你了解 Java 线程池的原理吗?]

核心线程数在运行过程中能修改吗

  • [5931. Java 线程池核心线程数在运行过程中能修改吗?如何修改?]

你平时用过哪些数据库?

数据库的隔离级别有哪些?

  • [606. MySQL 中的事务隔离级别有哪些?]

可重复读是怎么实现的?

  • [604. MySQL 中的 MVCC 是什么?]

你了解数据库层面的悲观锁与乐观锁吗?

  • [610. MySQL 的乐观锁和悲观锁是什么?]

什么情况下会导致死锁?

  • [518. Java 中什么情况会导致死锁?如何避免?]

说一下mysql的行锁

  • [609. MySQL 中有哪些锁类型?]

说一下幻读

  • [608. 数据库的脏读、不可重复读和幻读分别是什么?]

redis的主从复制是怎么实现的?

  • [651. Redis 主从复制的实现原理是什么?]

HR 面题目参考

  1. 你现在还在xx实习吗?
  2. 在xx公司做了什么?选一个具体项目讲讲背景、你的做法和成果。
  3. 这个项目有量化指标吗?能提供数据说明结果吗?
  4. 复盘来看,哪些地方做得不错?是怎么做到的?
  5. 你有做过 ToB 业务的项目吗?
  6. 这两段实习中,遇到的最大困难是什么?
  7. 这两段实习带来了哪些收获?做得好的地方和需要提升的地方分别是什么?
  8. 生活中有没有经历过特别困难的时期?
  9. 选择公司时,你会考虑哪些因素?
  10. 反问环节。

更多面经及答案可以打开***阅读学习 ➡️ :****************************

#牛客在线求职答疑中心#
全部评论

相关推荐

4.23  1h1, 自我介绍2, 项目拷打2.1, 简历里写的Mysql查询优化是怎么做的?(答: 主要是为部分字段添加了索引)2.2, 如果某一个字段的可选值很少, 比如性别中的男和女, 有没有必要加索引?(答: 一般不需要)2.3, 你想一下有没有需要的情况?2.4, Mysql怎么优化多表联查?2.5, 你对项目里的随机森林模型了解多少?2.6, 决策树是不是越深越好?2.7, 如何对决策树进行调优?2.8, 你觉得随机森林的缺点是什么?2.9, 你对项目里的Hadoop架构了解多少?2.10, 如果有一个大文件要存储在Hadoop中, 会有哪些步骤?八股3, 除了Redis, 还有哪些实现分布式锁的方式?(答: Zookeeper)4, 你对Zookeeper了解多少?5, Redis集群是如何进行主从同步的?6, 如果Redis集群发生了火灾等事故, 有没有办法恢复其中的数据?7, 如果Redis的一个节点挂了, 怎么让系统继续运行?8, 如果Redis中的数据过期了, 怎么恢复数据?9, 线程池有哪些核心的参数?10, 如果让你确定线程池的参数, 你会怎么设计?11, 提交一个任务到线程池的流程是什么?12, 如果一个任务到线程池之后, 核心线程未满, 并且有几个核心线程处于空闲状态, 任务是直接交给这几个核心线程处理还是新建立核心线程处理?13, 你用过哪些线程池?14, 你对垃圾回收机制了解吗?15, 老年代和新生代的区别是什么?16, 创建一个string对象会被存放在哪里?17, 如果string对象前面加了关键字static, 会被存放在哪里?18, 如果用循环创建了很多个string, 字符串常量池中会存入几个string?19, 怎么理解Spring的IOC?20, Spring用了哪些设计模式?21, Bean加载的顺序可以改变吗?编程题用两个线程交错打印从1到m*n的数字, 每个线程每次打印n个数字(寄)总结找实习以来被拷打的最狠的一次, 八股问的很有深度, 编程题猝不及防。
查看30道真题和解析
点赞 评论 收藏
分享
04-30 16:00
门头沟学院 Java
一面:1.  进程、线程、协程对比说一下2. Java来做异步任务处理用什么3.  分布式锁和Java的锁区别4. jvm调参,说自己了解的东西5. 内存泄漏发生在什么情况下6. 介绍原子类,比如AtomicInteger7. volatile起什么作用8. 手撕 :IDEA上写层序遍历和链表中间结点二面:1. 手撕:实现一个M叉树的结构,我写了31min,100多行的代码…类结构、插入函数和分裂函数2. 面试官:看你写出来了,如果让你测试,你会怎么编写测试用例3. 如果用这个M叉树来存储全国本科生的信息,假设场景如下:M是年级(大一到大四),用这个树把数据都存进去,insert进去,你说说这个程序的代码热点在代码的哪几行?4. 假设有个同学使用C++参考你的算法实现了一模一样的版本,但是在相同的硬件环境下,你的Java版本比C++版本更快,你觉得可能发生了什么?为什么5. 你最近在看的一本技术书籍是什么?6. 假设有一个1TB的文件,每一行都是一个url,现在你设计一个方案,满足的功能是找出这个文件中出现次数最多的那个url,怎么设计,方案有唯一解7. 假如你们学校机房有两台机器A、B,A上有一部电影,现在你设计一个网络程序,就一个发送端一个接收端,要求是通过网络的方式把这个电影从A传到B,要尽可能快。可以用你想的得到的任何硬件和软件上的方式来加速这个处理过程,你会怎么设计?可以想一下再回答我8. 假如用你刚刚的方案,软件实现了功能也正确,那你想一想这个链路的瓶颈在哪个环节?是在内存、cpu、磁盘还是网络?9. 你读研的方向是哪个领域?timeline:投递:4.6笔试:4.8一面:4.11二面:4.16hr 面:4.23排序挂…崩溃
阿里巴巴HR面180人在聊 查看17道真题和解析
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客企业服务