📚 Java基础篇阶段性总结(第1~25篇)—— 一张图+两张表,这些核心坑你踩过几个?(2026版)

📌 系列导航《Java 100 天进阶之路》完整目录
⬅️ 上一篇:第25篇:Java类加载与初始化 |
➡️ 下一篇:第26篇:Java注解详解


恭喜你! 你已经完成了《Java 100 天进阶之路》基础篇前半部分 第1~25篇 的学习。从跨平台原理到类加载机制,从面向对象到枚举,你打下了扎实的 Java 基础。

本文是对 第1~25篇阶段性总结,用一张学习路线图 + 两张核心速查表 + 避坑清单 + 面试题,帮你把前半程的精华全部浓缩。建议收藏,随时复习。


📌 Java基础篇阶段性学习路径图

在这里插入图片描述

👉 还没学完?点击回到完整目录继续学习


📚 各篇核心知识点速查

篇号 核心标题 一句话考点 面试必考内容 面试频率
1 编程语言类型 & Java跨平台性 字节码+JVM实现跨平台 JVM跨平台吗?为什么? ⭐⭐⭐⭐⭐
2 配置Java环境变量 JAVA_HOME与Path配置 为什么配置JAVA_HOME? ⭐⭐⭐⭐
3 为何要配置环境变量? Path搜索顺序,多版本管理 多个JDK如何选择? ⭐⭐⭐⭐
4 秒懂数组拷贝,感知新境界 System.arraycopy vs Arrays.copyOf 浅拷贝与深拷贝区别 ⭐⭐⭐
5 装箱和拆箱 Integer缓存池-128~127 128==128是true还是false? ⭐⭐⭐⭐⭐
6 Java异常有哪几种 检查型异常、运行时异常、Error try-catch-finally执行顺序 ⭐⭐⭐⭐⭐
7 Java面向对象简介 封装、继承、多态 多态的实现原理 ⭐⭐⭐⭐⭐
8 Java基本数据类型 8种基本类型及默认值 int和Integer区别 ⭐⭐⭐⭐
9 Java运算符简介 算术、逻辑、位运算符 && 和 & 的区别 ⭐⭐⭐
10 Java操作符有哪些? 运算符优先级、字面量 优先级最高的运算符 ⭐⭐⭐
11 Java控制台输入输出语句 Scanner用法,nextLine陷阱 nextInt后nextLine读不到? ⭐⭐⭐⭐
12 Java对象、类、抽象类、构造函数 构造方法重载,this关键字 抽象类为什么可以有构造方法? ⭐⭐⭐⭐
13 JDK和JRE、final与static、堆和栈 JDK⊃JRE⊃JVM,static,堆栈内存 static变量存储在哪? ⭐⭐⭐⭐⭐
14 Java final关键字详解 final类、方法、变量 String为什么是final? ⭐⭐⭐⭐⭐
15 Java控制流程语句 if-else,switch,循环 switch支持哪些类型? ⭐⭐⭐
16 禁止使用Lombok Lombok陷阱,继承场景equals错误 为什么大厂禁止Lombok? ⭐⭐⭐⭐
17 Java常用包装类与自动装箱拆箱深入 包装类缓存,自动装箱性能 Integer.valueOf(127) vs new Integer(127) ⭐⭐⭐⭐
18 Java接口和抽象类的异同,default关键字 接口 vs 抽象类(5点区别) default方法作用 ⭐⭐⭐⭐⭐
19 Java接口的作用和意义 解耦、多态、面向接口编程 为什么优先用接口? ⭐⭐⭐⭐⭐
20 Java初始化、构造器、对象创建的过程 静态块、实例块、构造方法顺序 父子类初始化顺序 ⭐⭐⭐⭐⭐
21 Java Object类 equals、hashCode契约 重写equals必须重写hashCode? ⭐⭐⭐⭐⭐
22 Java字符串简介 String不可变,常量池,StringBuilder String拼接用+还是StringBuilder? ⭐⭐⭐⭐⭐
23 缓冲区数据结构 ByteBuffer ByteBuffer属性,flip作用 直接缓冲区 vs 堆缓冲区 ⭐⭐⭐
24 Java枚举类型 enum 用法 枚举单例,values(),ordinal() 为什么推荐枚举单例? ⭐⭐⭐⭐
25 Java类加载与初始化 类加载过程,双亲委派模型 双亲委派的好处 ⭐⭐⭐⭐⭐

🔥 高频面试题汇总(第1~25篇)

一、基础语法与环境

  1. Java 跨平台原理? → 源码→字节码→JVM→机器码,JVM 屏蔽系统差异。
  2. Path 环境变量作用? → 系统按顺序搜索可执行文件目录。
  3. 数组拷贝两种方式区别?System.arraycopy 需预分配目标数组;Arrays.copyOf 自动创建新数组。

二、面向对象

  1. 封装、继承、多态含义? → 隐藏实现、复用代码、父类引用子类对象。
  2. 抽象类 vs 接口(至少5点)? → 构造方法、成员变量、多继承、访问修饰符、设计理念。
  3. final 修饰类/方法/变量区别? → 类不可继承、方法不可重写、变量不可变(引用地址不可变)。
  4. static 变量存储在哪? → 方法区(JDK8+ 元空间)。
  5. 构造方法能否被重写? → 不能重写,但可重载。
  6. 父子类初始化顺序? → 父静→子静→父实例→父构造→子实例→子构造。
  7. ==equals 区别?== 比较地址或基本类型值;equals 可重写比较内容。
  8. String 为什么不可变? → 常量池安全、线程安全、hashCode 可缓存。
  9. StringBuilder vs StringBuffer → 前者线程不安全但快,后者同步慢。
  10. Integer 缓存池范围? → -128~127。

三、异常、包装类、枚举

  1. 检查型 vs 运行时异常? → 前者必须处理(IO),后者可改代码(空指针)。
  2. try-catch-finallyreturn 顺序?finally 块在 return 前执行。
  3. 枚举单例优点? → JVM 保证唯一、线程安全、防止反射攻击。
  4. serialVersionUID 作用? → 序列化版本兼容(此知识在后续篇章详细展开,但面试常提前问)。

四、类加载与初始化

  1. 双亲委派模型? → 类加载器收到请求先委托父类,避免核心类被篡改。
  2. 主动引用 vs 被动引用?new、静态方法、静态字段(非常量)会初始化;数组定义、常量、子类调用父类静态字段不会初始化子类。

🧨 避坑清单(第1~25篇高频错误)

坑点 错误写法 正确做法
环境变量 修改后不重启终端 重新打开命令行窗口
数组拷贝 int[] b = a; 修改b影响a Arrays.copyOf(a, a.length)
包装类比较 Integer a=128; Integer b=128; a==b a.equals(b)a.intValue()==b.intValue()
异常处理 空catch块 至少 e.printStackTrace() 或打日志
Lombok继承 @Data 子类未设置 callSuper=true 手动生成equals/hashCode或 @EqualsAndHashCode(callSuper=true)
字符串拼接 循环中用 + StringBuilder
final引用 以为 final List 不能修改元素 元素可改,只是不能重新赋值引用
抽象类 子类未实现所有抽象方法 要么实现,要么子类也是抽象类
构造方法 忘了写无参构造,子类报错 显式写无参构造或用 @NoArgsConstructor
switch 忘记 break 导致穿透 用箭头语法 case 1 -> 或加 break
equalshashCode 重写 equals 不重写 hashCode 同时重写,保证一致性

🚀 接下来的学习(第26~44篇)

基础篇前半程已完结,后半程将进入更深入的 注解、反射、代理、日期、NIO、泛型、JVM字节码、反编译 等高阶内容,同时也是面试必考区域。
第26~44篇内容包括:

  • ✅ 注解(元注解、自定义注解、反射读取)
  • ✅ 反射(扒开 private 方法、动态创建对象)
  • ✅ 代理(JDK动态代理 vs CGLIB,Spring AOP 原理)
  • ✅ 日期(LocalDate 彻底取代 Date
  • ✅ NIO(Buffer、Channel、Selector)
  • ✅ 泛型(类型擦除、PECS 原则)
  • ✅ JVM(GC 算法、JIT、字节码指令、反编译工具)

👉 还没订阅? 点击关注专栏,第一时间收到更新!


📖 姊妹篇推荐:面试备战双通道

学完基础篇,你还需要强化面试能力。我为你准备了两个互补的面试系列:

1️⃣ 外部系列:《Java面试图解笔记》

适合快速建立知识图谱,用图解+口诀记忆高频考点。
👉 点击进入《Java面试图解笔记》

2️⃣ 内部系列:本专栏进阶篇《Java面试200题精讲》

适合深度理解原理,每道题都有源码分析+避坑+实战扩展
👉 本专栏后续将单独发布,敬请关注。

💡 建议学习路径

  • 先快速过一遍《图解笔记》建立面试知识框架
  • 再跟随本专栏基础篇+进阶篇深度掌握原理
  • 最后用《200题精讲》进行实战模拟,查漏补缺

🎁 福利:基础篇前半程知识点 PDF

为了方便复习,我把25篇的核心知识点、面试题、避坑表整理成了一份 PDF速查手册

👉 获取方式

  • 关注我的 CSDN 账号点击关注
  • 在本文评论区留言 “Java基础通关”私信我
  • 我会将 PDF 下载链接发送给你

📌 下一步行动

  1. 收藏本文,随时回看知识点速查表和面试题。
  2. 完成课后练习题(每篇文章都有)巩固动手能力。
  3. 继续学习第26~44篇,冲刺基础篇完结。
  4. 分享给正在学 Java 的朋友,帮他们也少走弯路。

种一棵树最好的时间是10年前,其次是现在。
👉 继续学习第26篇:Java注解详解 | 回到完整目录


📌 本总结文章属于《Java 100 天进阶之路 | 从入门到上岗就业》系列。
👉 第1~ 25 篇已总结,第26~44篇进行中。感谢陪伴,我们继续前行!
👉 点击关注我,更新后第一时间收到推送!欢迎收藏、转发、评论。
📌 除了Java,我也在深挖智能物流实战(出版社WMS、托盘调度、机器学习落地)。如果你对技术在不同领域的实战感兴趣,欢迎点击我的头像,看看专栏《出版社物流WMS智能调度实战》。技术相通,思路可鉴。


Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐