Java 基础知识总结(超详细整理)_java基础知识总结 超详细,收藏这篇就够了

以下是 Java 基础知识超详细总结(2026 年视角,基于 Java 21 LTS 及主流面试/实际开发需求)。这份整理力求全面、系统、易懂,覆盖从零基础到核心进阶的绝大部分内容。收藏这篇基本就够了(后续进阶如集合、并发、JVM、Spring 等可另开专题)。

内容分为 10 大模块,每模块包含核心概念、代码示例、易错点 & 面试高频考点。

1. Java 概述 & 运行机制(必背)

Java 三大特性(2026 常问):

  • 一次编写,到处运行(平台无关性)
  • 面向对象
  • 健壮性(自动垃圾回收 + 异常处理)

JDK / JRE / JVM 区别(经典面试题):

  • JDK = Java 开发工具包(开发 + 运行)
  • JRE = Java 运行环境(仅运行)
  • JVM = Java 虚拟机(真正执行字节码)

Java 程序执行流程
源代码(.java) → javac 编译 → 字节码(.class) → 类加载器 → JVM(解释器 + JIT 编译器) → 机器码执行

Java 版本演进速记(面试常考):

  • Java 8(2014):Lambda、Stream、Optional、默认方法
  • Java 11(2018 LTS):模块化(JPMS)、var 局部变量类型推断
  • Java 17(2021 LTS):密封类、记录类(record)、增强 switch
  • Java 21(2023 LTS):虚拟线程(Project Loom)、结构化并发、Sequenced Collections

2. 基本数据类型 & 包装类

类型字节默认值包装类自动装箱/拆箱陷阱(面试必考)
byte10Byte-128 ~ 127
short20Short-32768 ~ 32767
int40Integer缓存 -128~127
long80LLong加 L
float40.0fFloat加 f
double80.0Double默认浮点
char2CharacterUnicode 0~65535
boolean~1bitfalseBoolean不能用 0/1 代替

自动装箱/拆箱经典陷阱

Integer a = 100;
Integer b = 100;
System.out.println(a == b);  // true(缓存)

Integer c = 200;
Integer d = 200;
System.out.println(c == d);  // false(超出缓存范围,新对象)

面试扩展:为什么 Integer 缓存 -128~127?(性能优化 + 常量池)

3. 运算符 & 优先级(易错点集中营)

优先级口诀(从高到低):

  • 后缀(. [] () ++ –) > 前缀(++ — ! ~ new) > 算术 > 移位 > 关系 > 相等 > 位运算 > 逻辑 > 三元 > 赋值

复合赋值隐式转换(经典笔试题):

short s = 1;
s += 1;       // 合法,等价 s = (short)(s + 1)
s = s + 1;    // 编译错误!int 不能赋给 short

字符串拼接优先级

System.out.println(1 + 2 + "3");   // "33"
System.out.println("1" + 2 + 3);   // "123"

短路 vs 非短路

  • && / || 短路(左边确定就不算右边)
  • & / | 不短路(两边都算,可能 NPE)

4. 流程控制(if / switch / 循环)

switch 增强(Java 17+):

String day = "MON";
String type = switch (day) {
    case "MON", "TUE", "WED", "THU", "FRI" -> "工作日";
    case "SAT", "SUN"                       -> "周末";
    default                                 -> "非法";
};

for-each vs 传统 for
for-each 底层调用 iterator,不能改集合大小

5. 面向对象核心(OOP)——三大特性 + 五大原则

三大特性

  • 封装:private + getter/setter
  • 继承:extends(单继承),super()
  • 多态:父类引用指向子类对象,运行时绑定

五大设计原则(SOLID):

  • S:单一职责(一个类只干一件事)
  • O:开闭原则(对扩展开放,对修改关闭)
  • L:里氏替换(子类可替换父类)
  • I:接口隔离(不要胖接口)
  • D:依赖倒置(面向接口编程)

final 关键字全解

  • 变量:常量
  • 方法:不可重写
  • 类:不可继承

static 关键字

  • 静态变量/方法:类级别
  • 静态代码块:类加载时执行(只一次)

6. 数组 & 常用类(String / StringBuilder / Math / Date)

数组初始化

int[] arr = new int[5];          // 全 0
int[] arr2 = {1, 2, 3};          // 静态初始化

String 不可变性(面试核心):

String s = "hello";
s = s + " world";  // 实际创建新对象,原 "hello" 不变

String / StringBuilder / StringBuffer 对比

可变性线程安全适用场景
String不可变常量、频繁拼接少
StringBuilder可变非安全单线程高频拼接
StringBuffer可变安全多线程(现已少用)

常用 API

  • equals() vs ==(String 重写了 equals)
  • intern()(字符串常量池)

7. 异常处理(try-catch-finally-throw-throws)

异常体系

  • Throwable
  • Error(严重错误,如 OutOfMemoryError)
  • Exception
    • RuntimeException(非检查,如 NullPointerException)
    • Checked Exception(必须处理,如 IOException)

经典写法(Java 7+ 多 catch / try-with-resources):

try (FileInputStream fis = new FileInputStream("file.txt")) {
    // ...
} catch (IOException | SQLException e) {
    // ...
} finally {
    // 一定执行(释放资源)
}

8. 常用工具类 & 枚举 & 记录类(Java 14+)

枚举(enum)

public enum Season {
    SPRING("春"), SUMMER("夏");

    private final String name;
    Season(String name) { this.name = name; }
}

记录类(record,Java 16+ 稳定)

public record Point(int x, int y) { }  // 自动生成 equals、hashCode、toString、getter

9. 泛型(Generics)基础

常用写法

List<String> list = new ArrayList<>();  // 钻石语法(Java 7+)

泛型擦除:编译后泛型信息丢失(运行时 List 和 List 是同一个类)

通配符

  • ? extends T:上限(可读不可写)
  • ? super T:下限(可写不可读)

10. 反射 & 注解基础(入门级)

反射三要素

  • Class 对象
  • Field / Method / Constructor

获取 Class 对象三种方式

Class<?> clazz1 = Class.forName("java.lang.String");
Class<?> clazz2 = String.class;
Class<?> clazz3 = new String().getClass();

注解入门(Java 5+):

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    String value() default "hello";
}

最后总结:Java 基础学习路径建议(2026 版)

  1. 环境搭建 + 语法(1 周)
  2. 面向对象 + 数组/字符串(2 周)
  3. 集合框架预习 + 异常(1 周)
  4. 多线程入门 + IO 流(2 周)
  5. 泛型 + 反射 + 注解(1 周)
  6. 刷 LeetCode 简单题 + 复习易错点(持续)

一句话背诵口诀(面试速记):
八基四引,装箱拆箱陷阱多;运算优先短路别算错;OOP 三大五原则记牢,final static 位置要分清;String 不可变,Builder 可变快;异常分 checked 和 runtime,反射注解入门要会写。”

这份总结基本覆盖 90% 的 Java 基础面试和实际开发需求。如果需要针对某个模块(如集合、多线程、JVM)再做超详细展开,或者附上代码练习题,继续告诉我~

文章已创建 4206

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部