跳转至

Java 语言基础学习文档体系

一套系统完整的Java语言基础学习资料,从语法基础到新版本特性,涵盖面向对象、函数式编程、反射等核心知识。

📚 文档目录

基础篇

01 - Java语法基础

  • 数据类型(基本类型、引用类型)
  • 运算符(算术、逻辑、位运算)
  • 控制流(if/switch、循环、跳转)
  • 异常处理(try-catch、自定义异常、异常链)
  • 字符串处理
  • 数组与多维数组

02 - 面向对象编程

  • 类与对象(定义、构造器、成员变量/方法)
  • 封装(访问修饰符、Getter/Setter)
  • 继承(extends、super、方法重写)
  • 多态(向上转型、向下转型、动态绑定)
  • 接口与抽象类(interface、abstract)
  • 内部类(成员内部类、局部内部类、匿名内部类、静态内部类)

进阶篇

03 - Java高级特性

  • 泛型(泛型类、泛型方法、通配符、类型擦除)
  • 注解(内置注解、自定义注解、注解处理器)
  • 反射(Class对象、反射调用、反射创建对象)
  • 动态代理(JDK动态代理、CGLIB)
  • 枚举(enum、枚举方法)
  • SPI机制(ServiceLoader)

04 - 函数式编程

  • Lambda表达式(语法、函数式接口)
  • 方法引用(静态方法、实例方法、构造器引用)
  • Stream API(中间操作、终止操作)
  • Optional(避免NPE、链式调用)
  • 函数式接口(Function、Predicate、Consumer、Supplier)
  • 实战案例(数据处理、集合转换)

新特性篇

05 - Java新版本特性

  • Java 8 - Lambda、Stream、Optional、接口默认方法、日期时间API
  • Java 9 - 模块化、JShell、集合工厂方法
  • Java 10 - var关键字、G1垃圾收集器优化
  • Java 11 - HTTP Client、字符串增强、ZGC
  • Java 14 - Switch表达式、Records预览
  • Java 17 - Sealed Classes、Pattern Matching
  • Java 21 - Virtual Threads、Record Patterns、Sequenced Collections

06 - Java集合框架

  • List系列 - ArrayList、LinkedList、CopyOnWriteArrayList 源码分析
  • Set系列 - HashSet、TreeSet、LinkedHashSet
  • Map系列 - HashMap、ConcurrentHashMap、TreeMap、LinkedHashMap 深入解析
  • Queue系列 - PriorityQueue、ArrayDeque、BlockingQueue
  • 集合工具 - Collections、Arrays 常用方法
  • 性能对比 - 各集合底层实现与使用场景

07 - Java并发编程

  • 线程基础 - Thread、Runnable、Callable、线程生命周期
  • 线程同步 - synchronized、volatile、JMM、happens-before规则
  • 线程池 - Executor框架、ThreadPoolExecutor源码、最佳实践
  • 并发集合 - ConcurrentHashMap、BlockingQueue、CopyOnWriteArrayList
  • 锁机制 - ReentrantLock、ReadWriteLock、StampedLock
  • 并发工具类 - CountDownLatch、CyclicBarrier、Semaphore、Exchanger、Phaser
  • 原子类与CAS - Atomic类、CAS原理、ABA问题、LongAdder
  • 并发设计模式 - 生产者消费者、ThreadLocal、Future模式、不变模式
  • 性能优化 - 性能调优、死锁/活锁/饥饿、生产环境最佳实践

🚀 学习路径

初级阶段(1-2周)

  1. 阅读 Java语法基础,掌握基本语法
  2. 阅读 面向对象编程,理解OOP思想
  3. 实践:编写简单的类,练习继承和多态

中级阶段(2-3周)

  1. 学习 Java高级特性,掌握泛型、反射、注解
  2. 学习 函数式编程,掌握Stream API
  3. 实践:使用泛型重构代码、编写注解处理器、实践Stream数据处理

高级阶段(3-4周)

  1. 学习 Java集合框架,掌握HashMap、ConcurrentHashMap原理
  2. 学习 Java并发编程,掌握线程、同步、线程池、并发集合
  3. 学习 Java新版本特性
  4. 实践:手写HashMap、实现LRU缓存、使用线程池优化并发性能、使用新特性改进代码

💡 快速查找

按需求查找

需求 推荐章节
了解基本语法 01-语法基础
学习OOP 02-面向对象
掌握泛型 03-高级特性
学习反射 03-高级特性
学习Lambda 04-函数式编程
Stream操作 04-函数式编程
学习集合框架 06-集合框架
学习并发编程 07-并发编程
新版本特性 05-新版本特性

按知识点查找

知识点 相关章节
异常处理 01
接口与抽象类 02
泛型 03
注解 03
反射 03
动态代理 03
Lambda 04, 05
Stream 04, 05
HashMap 06
ConcurrentHashMap 06, 07
ArrayList 06
线程 07
synchronized 07
volatile 07
线程池 07
Record 05
Virtual Thread 05

🎯 核心知识点速查

面向对象三大特性

特性 核心概念 关键字 作用
封装 (Encapsulation) 隐藏内部实现 private、protected、public 保护数据、降低耦合
继承 (Inheritance) 代码复用 extends、super 复用代码、建立类层次
多态 (Polymorphism) 同一接口多种实现 @Override、向上转型 灵活扩展、降低耦合

泛型通配符对比

通配符 说明 使用场景 示例
<T> 类型参数 定义泛型类/方法 class Box<T>
<?> 无界通配符 只读操作 List<?>
<? extends T> 上界通配符 读取数据(协变) List<? extends Number>
<? super T> 下界通配符 写入数据(逆变) List<? super Integer>

Stream常用操作

Stream操作分类
├─ 中间操作 (Intermediate)
│   ├─ filter() - 过滤
│   ├─ map() - 映射转换
│   ├─ flatMap() - 扁平化映射
│   ├─ sorted() - 排序
│   ├─ distinct() - 去重
│   └─ limit()/skip() - 限制/跳过
└─ 终止操作 (Terminal)
    ├─ collect() - 收集结果
    ├─ forEach() - 遍历
    ├─ reduce() - 归约
    ├─ count() - 计数
    └─ anyMatch()/allMatch() - 匹配

Java版本重要特性

版本 重要特性 影响
Java 8 Lambda、Stream、Optional ⭐⭐⭐⭐⭐ 革命性更新
Java 11 HTTP Client、字符串增强 ⭐⭐⭐⭐ LTS长期支持版
Java 17 Sealed Classes、Pattern Matching ⭐⭐⭐⭐ LTS长期支持版
Java 21 Virtual Threads、Record Patterns ⭐⭐⭐⭐⭐ LTS+重大特性

🔧 实践项目建议

初级项目

  • 学生管理系统(OOP基础练习)
  • 计算器程序(异常处理练习)
  • 图书管理系统(接口与抽象类练习)

中级项目

  • 自定义注解框架(注解+反射)
  • 简易ORM框架(反射+泛型)
  • 数据处理工具(Stream API练习)

高级项目

  • 依赖注入容器(反射+注解+动态代理)
  • AOP框架实现(动态代理)
  • 插件系统(SPI机制)

📖 扩展阅读

官方文档

推荐书籍

  • 《Java核心技术》(Core Java)- 基础必读
  • 《Effective Java》- 最佳实践
  • 《深入理解Java虚拟机》- JVM深度

在线资源


🎓 面试高频知识点

必考题(⭐⭐⭐⭐⭐)

  1. 面向对象三大特性(封装、继承、多态)
  2. ==与equals()的区别
  3. String、StringBuilder、StringBuffer的区别
  4. HashMap的底层实现原理 06
  5. ArrayList和LinkedList的区别 06
  6. 接口与抽象类的区别
  7. 重载与重写的区别
  8. 泛型擦除机制
  9. 反射的原理和应用
  10. 异常分类和处理

高频题(⭐⭐⭐⭐)

  1. HashMap和ConcurrentHashMap的区别 06, 07
  2. HashMap的扩容机制 06
  3. synchronized和volatile的区别 07
  4. 线程池的核心参数和执行流程 07
  5. ConcurrentHashMap的实现原理 07
  6. static、final、this、super的使用
  7. 内部类的分类和使用
  8. Lambda和匿名内部类的区别
  9. Stream API的使用
  10. Optional的使用场景
  11. JDK动态代理和CGLIB的区别
  12. 枚举的实现原理
  13. Java 8~21的新特性

🤝 贡献

本文档持续更新中,欢迎提出改进建议!


📝 更新日志

  • 2025-01 - 新增并发编程章节(完整版)
  • 新增 07-Java并发编程 主文档
  • 核心章节(4个):
  • 扩展章节(5个):
  • 创建代码示例项目 java-concurrency-basics
  • 结合算力平台实际应用场景
  • 总计9个子文档,涵盖Java并发编程的完整知识体系

  • 2025-10-29 - 新增集合框架章节

  • 新增 06-Java集合框架
  • HashMap、ConcurrentHashMap 深入源码分析
  • ArrayList、LinkedList 底层实现与性能对比
  • 面试高频题汇总

  • 2025-10 - 初始版本发布

  • 完整的5章节内容
  • 涵盖从基础语法到新版本特性
  • 包含大量代码示例和最佳实践

📄 许可

本文档采用 CC BY-NC-SA 4.0 许可协议。


开始学习: 01 - Java语法基础 →

祝你学习顺利! 🎉