Java 基础知识完整梳理(适合零基础到入门,2025–2026 视角)
Java 是目前企业级开发、Android、大数据后端最主流的语言之一。下面按学习顺序 + 重要程度把核心基础知识点系统整理一遍,重点突出最常考、最实用的部分。
阶段1:最基础(必须先掌握,1–2 周)
| 知识点 | 核心内容(一句话记住) | 代码示例 / 关键点 | 常见考点 / 陷阱 |
|---|---|---|---|
| JDK / JRE / JVM | JDK = 开发工具 + JRE;JRE = JVM + 类库;JVM 真正执行字节码 | javac 编译 → .class → java 运行 | JVM 是虚拟机,跨平台(一次编写,到处运行) |
| main 方法签名 | 程序入口,必须是 public static void main(String[] args) | — | 为什么 static?(无需对象就能调用) |
| 数据类型 | 8种基本类型 + 引用类型(String、数组、对象等) | byte/short/int/long/float/double/char/boolean | long 后加 L,float 加 F |
| 变量 & 常量 | 声明 + 初始化;final 常量 | final double PI = 3.14; | final 修饰引用类型 → 地址不变,内容可变 |
| 运算符 | 算术 / 关系 / 逻辑 / 位 / 赋值 / 三目 | && 短路与,|| 短路或 | == vs equals()(基本类型 vs 对象) |
| 流程控制 | if-else / switch / 三元 / for / while / do-while | switch 支持 String、enum(Java 7+) | switch 表达式(Java 14+ 预览 → Java 21 正式) |
| 数组 | 固定长度,new int[5] 或 {1,2,3} | 增强 for 循环:for(int x : arr) | 数组长度 arr.length(属性,不是方法) |
阶段2:面向对象核心(OOP)——Java 的灵魂(2–4 周)
| 知识点 | 核心一句话 | 关键代码示例 | 面试最爱问的点 |
|---|---|---|---|
| 类 & 对象 | 类是模板,对象是实例 | Person p = new Person(); | new 做了什么?(分配内存 + 调用构造) |
| 构造方法 | 与类同名,无返回值;用于初始化 | public Person(String name) { this.name = name; } | 默认无参构造、this() 调用其他构造 |
| this / super | this → 当前对象;super → 父类引用 | super(name); / this.age = age; | this() 必须第一行 |
| 封装 | private 属性 + public get/set | — | 为什么封装?(隐藏细节、控制访问) |
| 继承 | extends 单继承;extends Object | class Student extends Person | 子类构造先调用父类构造 |
| 方法重写 | @Override;返回值、参数、权限 ≥ 父类 | — | 不能降低访问权限 |
| 多态 | 父引用指向子对象;编译看左,运行看右 | Person p = new Student(); p.eat(); → 调用 Student 的 eat() | 成员变量看左边,方法看右边 |
| 接口 | interface(Java 8+ default/static 方法) | default void say() { … } | 多实现;JDK 9+ private 方法 |
| 抽象类 | abstract class / 方法;不能 new | — | 抽象类 vs 接口(2025 更倾向接口 + 默认方法) |
阶段3:常用基础类 & 特性(实用性最强)
| 类别 | 核心类 / 知识点 | 常用方法 / 特点 | 面试高频考点 |
|---|---|---|---|
| String | 不可变、常量池 | intern()、+(编译优化为 StringBuilder) | StringBuilder vs StringBuffer(线程安全) |
| 包装类 | Integer、Double 等 | 自动装箱/拆箱;缓存(-128 ~ 127) | Integer a=100; b=100; a==b → true |
| == vs equals | == 比较地址;equals 比较内容 | String、Integer 重写了 equals | 自定义对象要重写 equals + hashCode |
| 异常处理 | Throwable → Error / Exception | try-catch-finally / throws / throw | finally 一定执行(return 前也执行) |
| 集合框架入门 | Collection → List/Set/Queue | ArrayList(数组)、LinkedList(链表)、HashSet(无序)、TreeSet(有序) | ArrayList vs LinkedList 增删查场景 |
| Map | HashMap / TreeMap / LinkedHashMap | put、get、keySet、entrySet | HashMap 1.8+ 红黑树 + 链表 |
| 泛型 | <T> 编译期类型安全 | List<String> | 泛型擦除(运行时 List → List) |
阶段4:Java 现代特性(Java 8–21 必知,2025 企业主流)
- Lambda + Stream(Java 8+):函数式编程神器
list.stream()
.filter(n -> n > 10)
.map(n -> n * 2)
.collect(Collectors.toList());
- Optional:优雅处理 null
Optional.ofNullable(user).map(User::getName).orElse("未知");
- 记录类 record(Java 16+):不可变数据载体
record Point(int x, int y) {}
- 密封类 sealed(Java 17+):限制继承
- switch 表达式(Java 14+ → 21 正式)
- 文本块(Java 15+):多行字符串
String html = """
<html>
<body>Hello</body>
</html>
""";
学习建议(2026 年视角)
- 先把 阶段1 + 阶段2 打牢(OOP 是核心)
- 每天写 50–100 行代码(LeetCode Easy + 自己小项目)
- 强烈推荐顺序:
- 语法 → OOP → String/集合 → 异常 → Lambda/Stream → 泛型
- 工具:IntelliJ IDEA Community(免费) + JDK 21 / 23(LTS 用 21)
- 资源(2025–2026 推荐):
- 《Head First Java》(入门最友好)
- 《Effective Java》(第3/4版,进阶必看)
- Oracle 官方教程 + Java 新特性文档
如果你现在能独立写出下面这段代码,说明基础已经过关:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String introduce() {
return "我是" + name + ",今年" + age + "岁";
}
public static void main(String[] args) {
Person p = new Person("重阳", 25);
System.out.println(p.introduce());
}
}
想重点深入哪一块?
- OOP 多态/继承细节
- 集合框架底层(ArrayList/HashMap 实现)
- Java 8 Lambda + Stream 实战
- 异常处理最佳实践
- 现代 Java 特性(record、sealed、pattern matching)
直接告诉我,我继续给你展开~