Java基础知识总结(超详细整理)

Java 基础知识总结(超详细版,2026年视角,基于 JDK 21 LTS + 主流企业实际使用情况整理)

这份总结适合:

  • 零基础/初学者系统入门
  • 准备校招/社招/面试(覆盖95%+ Java基础岗考点)
  • 已有经验但知识碎片化,想系统复习的人

内容按学习/面试推荐顺序组织,加粗的是高频面试点,⭐表示当前(2026年)企业最常使用的写法/特性。

1. Java 语言概述与环境(先搞懂这层)

概念解释(2026视角)关键点 / 面试常问
JDK开发工具包(javac、javadoc、jar、jlink 等)包含 JRE + 开发工具
JRE运行环境(JVM + 核心类库 rt.jar / modules)只跑程序,不开发
JVM虚拟机(HotSpot 是主流实现)跨平台核心:一次编写,到处运行
字节码.class 文件,平台无关javap -v 查看字节码指令
主流版本企业主流:JDK 8 / 11 / 17 / 21(LTS)2026年新项目首选 JDK 21JDK 17

JDK 21 LTS 为什么现在最推荐?
虚拟线程(Project Loom 正式版)、记录类、密封类、模式匹配 for switch、字符串模板(预览)等大幅提升开发效率。

2. 基本语法(最基础但最容易丢分)

  • 标识符:字母、下划线、$ 开头,后面可数字
  • 关键字:53个(goto、const 是保留字但不用)
  • 数据类型(8种基本 + 引用) 类型 字节 默认值 包装类 常考点 byte 1 0 Byte -128 ~ 127 short 2 0 Short int 4 0 Integer 面试最爱:缓存 -128~127 long 8 0L Long 后缀 L/l float 4 0.0f Float 后缀 F/f,精度问题 double 8 0.0 Double 默认小数类型 char 2 Character Unicode,’中’ 合法 boolean ~ false Boolean 不能转int(不像C++)
  • 自动装箱/拆箱(面试必考)
  Integer i = 100;          // 自动装箱
  int j = i;                // 自动拆箱
  Integer a = 100, b = 100; // true(IntegerCache -128~127)
  Integer c = 200, d = 200; // false(new Integer)
  • 运算符优先级:() > ++ -- ! > * / % > + - > << >> > & > ^ > | > && > || > ?: > =
  • switch 表达式(JDK 14+,JDK 21 完善,强烈推荐)
  String result = switch (day) {
      case "Mon", "Tue", "Wed", "Thu", "Fri" -> "工作日";
      case "Sat", "Sun"                      -> "周末";
      default                                -> throw new IllegalStateException();
  };

3. 面向对象核心(OOP)—— Java 的灵魂

三大特性 + 两大原则

特性核心思想代码体现面试话术 / 常考扩展
封装隐藏实现,暴露接口private + public get/set为什么用 getter/setter?数据校验、控制访问
继承代码复用,is-a 关系extends(单继承)多实现接口,慎用继承(组合优于继承)
多态同一接口,不同实现父类引用 → 子类对象向上/向下转型、动态绑定、方法重写 vs 重载

其他高频OOP概念

  • 抽象类 vs 接口(2026年最常问区别) 维度 抽象类 (abstract class) 接口 (interface) 2026主流用法 成员 可以有构造、普通方法、抽象方法、字段 默认方法、静态方法、私有方法(JDK9+) — 继承 单继承 多实现 优先接口 字段 可以非 public static final 只能 public static final(常量) — 适用场景 有部分实现,想强制子类实现某些行为 纯行为契约,多实现 模板方法用抽象类,策略用接口
  • final 关键字三处用法(必背)
  • 修饰类:不能被继承(String、LocalDateTime 等)
  • 修饰方法:不能被重写
  • 修饰变量:基本类型值不可变,引用类型地址不可变(内容可变)
  • this / super(this() 调用本类构造,super() 调用父类构造,必须第一行)

4. 常用类(String / 包装类 / Math / Date 时间)

  • String(不可变,线程安全,常考)
  • 字符串常量池(JDK7+ 在堆中)
  • intern() 方法
  • String、StringBuilder、StringBuffer 对比(线程安全、性能)
  • 包装类:Integer.valueOf() 有缓存,new Integer() 没有
  • 时间(JDK8+ 强烈推荐新 API
  LocalDate.now();
  LocalDateTime.now();
  Instant.now();           // UTC 时间戳
  ZonedDateTime.now(ZoneId.of("Asia/Shanghai"));
  DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

5. 集合框架(Collection & Map)—— 面试重灾区

Collection(单值)

  • List:ArrayList(最常用,默认扩容1.5倍)、LinkedList(双向链表,队列/栈)
  • Set:HashSet(无序)、LinkedHashSet(插入顺序)、TreeSet(红黑树,自然/自定义排序)
  • Queue:PriorityQueue(小顶堆)、ArrayDeque(双端队列,推荐替代 Stack)

Map(键值对)

  • HashMap(JDK8+ 红黑树+链表,1.7前只有链表)
  • LinkedHashMap(访问/插入顺序)
  • TreeMap(红黑树,key 排序)
  • ConcurrentHashMap(高并发首选,JDK8+ CAS + synchronized)

2026年最常用写法(推荐)

var list = new ArrayList<String>();           // 局部变量类型推断
List<String> immutable = List.of("a", "b");   // 不可变集合(推荐)
Map<String, Integer> map = Map.ofEntries(
    Map.entry("k1", 1),
    Map.entry("k2", 2)
);

6. 异常处理(try-with-resources 必会)

try (FileInputStream fis = new FileInputStream("a.txt");
     BufferedInputStream bis = new BufferedInputStream(fis)) {
    // 自动关闭
} catch (IOException e) {
    // 处理
}

异常分类(Throwable)

  • Error(严重错误)
  • Exception
  • RuntimeException(非检查)
  • 其他(检查异常,必须处理)

7. 泛型(2026年新项目几乎100%使用)

  • 泛型擦除(运行时 List 和 List 是同一个类)
  • 通配符 ? extends T(上限,Producer)、? super T(下限,Consumer)—— PECS 原则

8. 反射 & 注解(框架底层基础)

  • Class.forName()、getDeclaredField()、setAccessible(true)
  • 常用注解:@Override、@Deprecated、@FunctionalInterface、@SuppressWarnings

9. 枚举 & 记录类(JDK14+ 记录类,强烈推荐)

public enum Week {
    MON, TUE, WED, THU, FRI, SAT, SUN;
}
public record Point(int x, int y) { }  // 不可变、自动 toString/equals/hashCode

10. 快速对照表(背诵用)

场景推荐写法(2026主流)替代旧写法
字符串拼接大量StringBuilder / String.format / 文本块+
创建不可变集合List.of() / Set.of() / Map.of()Collections.unmodifiableList()
main 方法简化隐式声明的类 + instance main(JDK23预览)public static void main
switch 复杂判断switch 表达式 + 模式匹配if-else
DTO/VO 简单数据类record传统 POJO

这份总结已经覆盖了 Java 基础岗 90%+ 的知识点和面试考点。

你现在最缺哪一块?

  • 想重点刷集合/Map 底层?
  • 想看 JDK21+ 新特性实战代码?
  • 还是想直接来 50 道 Java 基础高频面试题?

告诉我,我可以继续展开更细的模块~

文章已创建 4357

发表回复

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

相关文章

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

返回顶部