2025 全新阿里巴巴 Java 面经汇总(附答案模板),建议收藏!
钉钉一面
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.synchronizedMap
和 Collections.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
):
- 查询锁是否被持有,以及持有者的信息。这对于排查锁的状态非常有用。
- 958. 分布式锁一般都怎样实现?
阿里菜鸟后端一面
对于给表创建索引,你会考虑什么?
- [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 面题目参考
- 你现在还在xx实习吗?
- 在xx公司做了什么?选一个具体项目讲讲背景、你的做法和成果。
- 这个项目有量化指标吗?能提供数据说明结果吗?
- 复盘来看,哪些地方做得不错?是怎么做到的?
- 你有做过 ToB 业务的项目吗?
- 这两段实习中,遇到的最大困难是什么?
- 这两段实习带来了哪些收获?做得好的地方和需要提升的地方分别是什么?
- 生活中有没有经历过特别困难的时期?
- 选择公司时,你会考虑哪些因素?
- 反问环节。
更多面经及答案可以打开***阅读学习 ➡️ :****************************
#牛客在线求职答疑中心#