Java 基础

📚 核心知识点地图

java的优势

一、数据类型体系

基本类型(8) → 包装类 → 自动装拆箱 → 缓存池机制
     ↓
类型转换规则 → 隐式/显式 → 精度丢失

二、核心类详解

StringStringBuilder/BufferBigDecimal → 时间新API → Comparable/Comparator
  ↓
不可变性 → 常量池 → intern() → 拼接优化 → 线程安全 → 排序策略

三、Object通用方法

equals/hashCode → toString → clone → finalize(废弃)
       ↓
  重写规范 → HashMap应用 → fail-fast

四、面向对象核心

继承 → 多态 → 封装
  ↓
抽象类 vs 接口 → 访问权限 → 重写 vs 重载

五、关键字

finalstaticsuper/this
  ↓
不可变 → 类级别 → 继承体系

六、核心机制

反射 → 泛型 → 注解 → 异常 → 枚举 / Lambda / Stream / IO
  ↓
动态能力 → 类型安全 → 元数据 → 错误处理 → 现代语言特性

七、JVM与内存模型

JVM整体结构 → 运行时数据区 → 对象创建与内存分配
   ↓
类加载机制 → 加载/链接/初始化 → 双亲委派 → 自定义类加载器

垃圾回收与内存管理 → 对象存活判定 → GC算法 → GC收集器 → 调优思路
    ↓
JMM(Java内存模型) → 主内存/工作内存 → 可见性/有序性/原子性 → 并发关键字

八、其他

java中的位运算技巧

内部类

JDK9-21新特性速览

设计模式体系

九、java的优势

java的优势(总览) → JVM → 字节码 → JIT/AOT
  ↓
自动垃圾回收 → GC机制/内存泄漏/内存溢出
  ↓
OOP特性 → 封装/接口隔离/多实现/重载重写多态/访问控制/super/抽象类与接口
  • 00-java的优势 - C++ 对比视角:跨平台/垃圾回收/生态/面向对象(块内动线表在这)
  • 01-JVM(Java Virtual Machine) - JVM 是什么、如何屏蔽系统差异
  • 02-字节码 - 中间代码、javap 实操、class 文件结构
  • 03-JIT编译 - 热点代码、C1/C2、内联/逃逸分析
  • 04-AOT编译 - 提前编译、GraalVM、快速启动场景
  • 自动垃圾回收机制 - GC 怎么替你管内存(含 01-内存泄漏 / 02-内存溢出 两篇实操排查)
  • OOP特性 - 12 篇专题:封装/接口隔离/多实现/重载重写/多态/访问控制/多重继承/super/抽象类与接口

十、对比与面试

🔥 高频考点

  1. 自动装拆箱 + 缓存池
    • 为什么 Integer a=127; b=127; a==b 为true?
    • NPE如何产生?如何避免?
    • 相关:02-自动装拆箱 03-缓存池机制
  2. String不可变性原理
    • 为什么设计成final?底层数据结构?
    • 常量池如何工作?intern()原理?
    • 相关:01-String不可变性 02-String常量池
  3. equals与hashCode
    • 为什么重写equals必须重写hashCode?
    • HashMap如何依赖这两个方法?
    • 相关:01-equals与hashCode
  4. 反射的应用场景
    • Spring如何通过反射实现IoC?
    • 反射的性能问题如何优化?
    • 相关:01-反射机制
  5. 泛型擦除机制
    • 什么是类型擦除?为什么这样设计?
    • List<String>List<Integer> 运行时是同一个类吗?
    • 相关:02-泛型详解
  6. 抽象类 vs 接口
    • 设计思想有何不同?何时选择哪个?
    • JDK8后接口有哪些增强?
    • 相关:02-抽象类与接口
  7. final关键字
    • 修饰变量/方法/类各有什么作用?
    • final如何保证线程安全?
    • 相关:01-final关键字
  8. static关键字
    • 静态块、静态变量的初始化顺序?
    • 静态变量有内存泄漏风险吗?
    • 相关:02-static关键字
  9. 重写 vs 重载
    • 重写有什么限制条件?为什么?
    • 重载能靠返回值区分吗?
    • 相关:04-重写与重载
  10. 异常体系
    • Checked vs Unchecked的设计意图?
    • 异常处理的最佳实践?
    • 相关:04-异常体系

📊 知识图谱(关联关系)

graph TD
    A[Java基础] --> B[数据类型]
    A --> C[核心类]
    A --> D[面向对象]
    A --> E[核心机制]

    B --> B1[基本类型]
    B --> B2[包装类]
    B2 --> B3[自动装拆箱]
    B3 --> B4[缓存池]

    C --> C1[String]
    C1 --> C2[不可变性]
    C2 --> C3[常量池]
    C --> C4[BigDecimal]

    D --> D1[继承]
    D --> D2[多态]
    D --> D3[封装]
    D1 --> D4[抽象类]
    D1 --> D5[接口]

    E --> E1[反射]
    E --> E2[泛型]
    E --> E3[注解]
    E1 --> E4[Spring IoC]
    E2 --> E5[集合框架]
    E3 --> E6[框架开发]

    style B fill:#e1f5ff
    style C fill:#fff4e1
    style D fill:#ffe1f5
    style E fill:#f5e1ff


⬅️ 00-Java 🏠 00-Java ➡️ 基本类型与包装类