NiceOffer

面试面经 · 阿里巴巴

【阿里巴巴】【Java后端】【一面】基础扎实+手写代码,面试体验不错

阿里巴巴Java后端校招面经一面

【阿里巴巴】【Java后端】【一面】

基本信息

项目内容
公司阿里巴巴(淘天集团)
岗位Java后端开发工程师
轮次一面(技术面)
时间2025年3月
面型体感视频面试,约60分钟,节奏紧凑但不压抑
结果通过,进入二面

面试题目(按提问顺序)

  1. 自我介绍,讲一下自己最擅长的技术栈
  2. HashMap 的底层实现原理?JDK 1.7 和 1.8 有什么区别?
  3. ConcurrentHashMap 如何保证线程安全?JDK 1.8 的锁粒度是什么?
  4. ArrayList 和 LinkedList 的区别?各自的扩容机制是什么?
  5. 说说 JVM 的内存模型,堆、方法区、虚拟机栈分别存什么?
  6. GC Roots 有哪些?常见的垃圾回收算法有哪些?
  7. CMS 和 G1 的区别是什么?什么时候选择 G1?
  8. MySQL 的 InnoDB 为什么选用 B+ 树作为索引结构,而不是 B 树或哈希?
  9. 什么情况下会导致索引失效?
  10. 说说事务的 ACID 特性,InnoDB 是如何保证原子性和持久性的?
  11. Redis 常用的数据结构有哪些?在项目中怎么用的?
  12. Redis 的过期策略和内存淘汰机制分别是什么?
  13. 缓存穿透、缓存击穿、缓存雪崩分别是什么?如何解决?
  14. Spring 的 IoC 和 AOP 原理是什么?
  15. SpringBoot 自动装配的原理是什么?
  16. 手撕代码:实现一个 LRU 缓存(要求 get/put 时间复杂度 O(1))
  17. 算法题:判断单链表是否有环,如果有,找到环的入口节点
  18. TCP 三次握手和四次挥手的过程?为什么挥手需要四次?
  19. 你有什么要问我的吗?

面试感受 / 反馈

面试官人很好,会引导。Java 基础问得很细,从 HashMap 一路追问到 ConcurrentHashMap 再到锁升级。MySQL 索引部分问了场景题,比如什么情况下联合索引会失效。手写 LRU 是重点,要求用 LinkedHashMap 或 HashMap + 双向链表实现。整体面试体验不错。

准备建议

  • Java 集合框架要深入源码,不要只背结论
  • JVM 重点掌握内存模型、GC 算法和垃圾回收器对比
  • MySQL 索引优化是高频考点,要会分析 EXPLAIN 结果
  • 手写代码多练:LRU、链表操作、多线程交替打印

反问示例

  • 团队目前主要的技术方向是什么?
  • 新人入职后大概多久能上手核心业务?