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周)¶
中级阶段(2-3周)¶
高级阶段(3-4周)¶
- 学习 Java集合框架,掌握HashMap、ConcurrentHashMap原理
- 学习 Java并发编程,掌握线程、同步、线程池、并发集合
- 学习 Java新版本特性
- 实践:手写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深度
在线资源¶
- Oracle Java Tutorials
- Baeldung - Java教程宝库
- Java Brains - 视频教程
🎓 面试高频知识点¶
必考题(⭐⭐⭐⭐⭐)¶
- 面向对象三大特性(封装、继承、多态)
- ==与equals()的区别
- String、StringBuilder、StringBuffer的区别
- HashMap的底层实现原理 06
- ArrayList和LinkedList的区别 06
- 接口与抽象类的区别
- 重载与重写的区别
- 泛型擦除机制
- 反射的原理和应用
- 异常分类和处理
高频题(⭐⭐⭐⭐)¶
- HashMap和ConcurrentHashMap的区别 06, 07
- HashMap的扩容机制 06
- synchronized和volatile的区别 07
- 线程池的核心参数和执行流程 07
- ConcurrentHashMap的实现原理 07
- static、final、this、super的使用
- 内部类的分类和使用
- Lambda和匿名内部类的区别
- Stream API的使用
- Optional的使用场景
- JDK动态代理和CGLIB的区别
- 枚举的实现原理
- Java 8~21的新特性
🤝 贡献¶
本文档持续更新中,欢迎提出改进建议!
📝 更新日志¶
- 2025-01 - 新增并发编程章节(完整版)
- 新增 07-Java并发编程 主文档
- 核心章节(4个):
- 07-01-线程基础 - Thread、Runnable、Callable、线程生命周期
- 07-02-线程同步与内存模型 - synchronized、volatile、JMM、happens-before
- 07-05-线程池 - Executor框架、ThreadPoolExecutor源码、最佳实践
- 07-06-并发集合 - ConcurrentHashMap、BlockingQueue、CopyOnWriteArrayList
- 扩展章节(5个):
- 07-03-锁机制 - ReentrantLock、ReadWriteLock、StampedLock
- 07-04-并发工具类 - CountDownLatch、CyclicBarrier、Semaphore、Exchanger、Phaser
- 07-07-原子类与CAS - Atomic类、CAS原理、ABA问题、LongAdder
- 07-08-并发设计模式 - 生产者消费者、ThreadLocal、Future模式、不变模式
- 07-09-性能优化与最佳实践 - 性能调优、死锁/活锁/饥饿、生产环境最佳实践
- 创建代码示例项目
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语法基础 →
祝你学习顺利! 🎉