最近在帮几位朋友准备 Java 后端面试,发现大家普遍面临一个困境:知识点太多太杂,网上资料质量参差不齐,不知道从何下手,更别提在短时间内形成体系化的知识储备了。本文旨在解决这个痛点,为你梳理一份为期 7 天的高效复习计划,覆盖 Java 后端面试的核心高频考点,包括 Java 基础、并发编程、JVM、MySQL、Spring 框架等,并穿插典型场景题分析。目标是帮助你构建清晰的知识脉络,掌握回答问题的“套路”,从而显著提升面试通过率。1. 复习策略与核心思想在开始具体的知识点学习前,我们必须明确一个核心思想:面试八股文不是死记硬背,而是在理解原理的基础上,能够清晰、有条理地表达,并能结合实际场景进行阐述。高效复习的三步法:建立知识框架:先对每个技术模块有一个整体的认知,知道它包含哪些核心部分。深入核心原理:针对框架内的每个核心知识点,不仅要知其然,更要知其所以然。理解背后的设计思想和权衡。关联与输出:将离散的知识点关联起来,思考它们在真实项目中的应用场景,并通过“自问自答”或“费曼学习法”进行输出,检验掌握程度。7天计划的核心分配思路:Day 1-2:夯实基础。聚焦 Java 语言本身的核心特性与机制。Day 3-4:攻克难点。深入并发编程和 JVM 这两大面试重灾区。Day 5:掌握存储。深入理解 MySQL,这是后端开发的基石。Day 6:理解框架。掌握 Spring 框架的核心思想与常用组件。Day 7:综合演练与查漏补缺。进行模拟面试,回顾高频场景题。下面,我们就按照这个计划,开始逐天拆解。2. Day 1-2:Java 基础核心Java 基础是面试的起点,问题通常直接且深入。2.1 面向对象特性这是必问题。不能只说“封装、继承、多态”三个词。封装:将数据和操作数据的方法绑定在一起,对外隐藏实现细节。核心目的是提高安全性和可维护性。例如,类的私有字段(private)和公共访问方法(getter/setter)。继承:子类继承父类的特征和行为,实现代码复用。要理解extends关键字、方法重写(@Override)、以及继承的局限性(Java 单继承)。多态:同一操作作用于不同对象,可以产生不同的执行结果。主要包括:编译时多态(重载):方法名相同,参数列表不同。运行时多态(重写):父类引用指向子类对象,调用被重写的方法。实现机制是 JVM 的动态绑定(虚方法表)。面试进阶点:谈谈对“组合优于继承”的理解。继承破坏了封装性,子类与父类耦合度高;而组合(持有其他类的实例)更灵活,符合“低耦合、高内聚”的原则。2.2 集合框架java.util.Collection和java.util.Map是两大根基。必须掌握常用实现类的底层数据结构和特性。List 系列:ArrayList:基于动态数组,查询快(O(1)),增删慢(需要移动元素,O(n))。默认初始容量10,扩容为1.5倍。LinkedList:基于双向链表,增删快(O(1)),查询慢(O(n))。可用于实现队列和栈。Vector:线程安全的动态数组(方法用synchronized修饰),但性能差,已不推荐使用。Set 系列:HashSet:基于HashMap实现,元素无序、唯一。依赖hashCode()和equals()方法。LinkedHashSet:在HashSet基础上维护了一个双向链表,保持插入顺序。TreeSet:基于红黑树实现,元素有序(自然排序或Comparator)。插入、删除、查找时间复杂度为O(log n)。Map 系列:HashMap:面试重中之重。JDK 1.8 后,数组+链表+红黑树。负载因子默认0.75,扩容阈值=容量*负载因子。扩容时容量翻倍。要能说清楚put、get、resize的大致流程。ConcurrentHashMap:线程安全的HashMap。JDK 1.7 采用分段锁,JDK 1.8 改为synchronized锁链表头/红黑树根节点 + CAS 操作,并发度更高。LinkedHashMap:在HashMap基础上维护了插入顺序或访问顺序(用于实现 LRU 缓存)。TreeMap:基于红黑树的有序 Map。代码示例:HashMap 简单使用import java.util.HashMap; import java.util.Map; public class HashMapDemo { public static void main(String[] args) { Mapl