应优先精读薄弱模块,聚焦封装、继承、多态、抽象类与接口等核心概念,结合对比表格、代码验证、面试题倒推、动手实践及真实场景深化理解。

直接读目录,挑自己薄弱的模块精读,别从头到尾硬啃。
聚焦核心概念,先理清“是什么”和“为什么”
书里关于封装、继承、多态、抽象类和接口的部分是高频考点。别只背定义,重点看对比表格和代码示例——比如“抽象类 vs 接口”在 JDK 8 之后的区别(默认方法、静态方法、变量修饰符),还有“重写 vs 重载”的触发条件和编译期/运行期行为。遇到不理解的地方,用 IDE 写两行代码验证下,比死记更牢。
- 看到“多态”就立刻想:父类引用指向子类对象 + 方法调用由实际类型决定
- 看到“static 关键字”就同步回忆:它修饰成员变量/方法时属于类,不随对象创建而存在
- 看到“Object 类方法”就检查是否清楚 equals() 和 == 的本质差异,以及 hashCode() 和 equals() 的契约关系
带着面试题倒推知识点
每章末的“面试真题”不是用来对答案的,而是用来定位知识盲区的。比如看到题:“子类构造器中为什么默认调用 super()?” 就回去翻“构造器链”那一节,搞懂 JVM 初始化顺序(父类静态块 → 子类静态块 → 父类非静态块 → 父类构造器 → 子类非静态块 → 子类构造器)。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- 把书中每道题当检查清单,答不上来就标记,集中补漏
- 对“final 关键字修饰类/方法/变量”的不同影响,结合反例记忆(如 final 类不能被继承,但可以有 final 方法)
- 注意陷阱题:String 是不可变的,但 String.valueOf(null) 返回字符串 "null",不是 NullPointerException
动手改代码,比抄笔记更有效
书里给的示例代码,别光看。打开编辑器,删掉一行、改个访问修饰符、换掉返回类型,观察编译错误或运行结果变化。比如把 protected 方法改成 private,看看子类还能不能访问;把接口里的 default 方法删掉,再实现类是否报错。
- 每个关键机制都亲手试一遍:向上转型后能否调用子类特有方法?抽象类里能写普通方法吗?
- 用单元测试验证 equals() 重写是否满足自反性、对称性、传递性
- 画个简单类图(哪怕手绘),标出继承关系、实现接口、字段可见性,强化结构感
结合真实场景理解设计意图
别停留在语法层面。比如看到“策略模式”,就想想 ArrayList 的 sort() 方法怎么用 Comparator;看到“工厂模式”,联系 Spring 的 BeanFactory 怎么解耦对象创建。书里讲“为什么要用接口而不是抽象类”,就对比 JDK 集合框架(Collection 接口)和日志门面(SLF4J)的设计逻辑。
- 把“开闭原则”具象化:添加新支付方式(微信、支付宝)时,是否只需新增类而不改原有代码?
- 理解“组合优于继承”时,想想 Java 的 InputStream 体系——FilterInputStream 用组合包装底层流,而非层层继承
- 遇到“内部类”章节,重点搞懂为什么匿名内部类能访问局部变量(JDK 8+ 的 effectively final 机制)
不复杂但容易忽略:读完一章,合上书,用三句话向别人讲清楚核心思想。讲不出来,说明还没真正掌握。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










