0Pricing
Java Academy icon

Java Academy

JAVABackendWebMobileEnterpriseBeginnerCloudDatabaseAndroidDesktopNetwork

通过 Java Academy 掌握 Java 编程,开发强大的应用程序。

🤖 AI 驱动📚 104 门课程👥 10万+ 学习者⭐ 4.9 分
课程概览

Java:从第一个类到生产级系统

近三十年来,Java 一直是企业软件、Android 开发和大规模后端系统的支柱。它运行在 JVM 上,配备丰富的标准库,驱动从金融交易平台到云微服务的一切。本课程轨道构建真正的 Java 能力——从变量和控制流开始,到 JVM 内部、虚拟线程和通过 GraalVM 的原生编译结束。

你将学到什么

你将从核心语法——变量、数据类型、循环和方法——进阶到使用类、继承、多态、密封类和记录的面向对象设计。中级阶段涵盖完整的 Collections 框架、java.time 和 NIO.2 API、Lambda 表达式、函数式接口和 Streams API(包括收集器、分割迭代器和原始流)。后续课程涉及 Spring Boot 配置和依赖注入、Spring Data JPA、REST API 验证、JUnit 5 集成测试和基于 JWT 的安全。轨道的高级部分涵盖 ExecutorService、锁、原子变量、CompletableFuture、结构化并发、通过 Project Loom 的虚拟线程、JVM 类加载和字节码、GraalVM 原生镜像编译和使用 JMH 的性能分析。

学习路径

120 多门课程跨越 A1 到 C2 级别。A1 和 A2 课程建立基础知识:类型系统、类型转换、自动装箱、包装类、数组、条件语句和方法。B1 深入讲授面向对象的 Java——枚举、内部类、迭代器、比较器、HashMap 内部原理、异常处理、序列化和 Maven 与 Gradle 等构建工具。B2 引入函数式编程、带边界通配符的泛型、自定义注解和一个实用的 Spring Boot 序列,以迷你项目:REST API 结尾。C1 课程是并发和性能成为中心舞台的地方——并行流、Java 内存模型、垃圾回收、反射、动态代理和结构化并发。该轨道在 C2 结束,使用外部函数和内存 API,这是 Java 与原生代码直接互操作的最低级能力。

工作原理

每门课程分为简短、专注的课程,你可以在内置代码编辑器中完成,并获得实时反馈。当你遇到困难时,AI 导师随时可用,关键里程碑处的迷你项目——Word Stats、Shape Hierarchy、Log Analyzer、REST API 和 Parallel Stats——让你在继续前进之前应用所学内容。

开始学习 →

你的学习方式

🎯
互动课程
实时反馈的动手编程练习
🤖
AI 导师
遇到困难时立即获得 AI 帮助
💻
内置编辑器
直接在浏览器中编写并运行代码
🏆
证书
完成课程后获得证书
课程

104 门课程

Java Academy 学习路径中的所有课程。

01

Java 入门

A13 节课

Java 是一种高级的面向对象编程语言,由 Sun Microsystems 于 1995 年推出。Java 以“写一次,到处运行”(WORA)能力而闻名:它会将代码编译为与平台无关的字节码,并在 Java 虚拟机(JVM)上运行,从而确保在数十亿台设备上兼容,包括服务器、手机…

02

Scanner 与控制台输入

A14 节课PRO

Scanner 与控制台输入:使用 Scanner 读取输入、读取数字和行等

03

Java 入门与集成开发环境设置

A13 节课PRO

开启您的 Java 学习之旅:了解什么是编程、Java 如何在 JVM 上运行,以及接下来需要哪些工具。本迷你课程将为安装环境和编写第一行代码做好准备。

04

变量与表达式基础

A13 节课PRO

掌握 Java 变量和表达式:学习基本类型、声明、赋值、打印值,以及数值表达式的基础知识。课程简短,适合移动端学习,并配有可运行的示例。

05

Java 类型系统与类型转换

A24 节课PRO

掌握 Java 类型系统:基本类型与引用类型、扩大和缩小转换、显式类型转换,以及 instanceof 运算符在实际场景中的应用。

06

Java 数学运算与数字格式化

A24 节课PRO

探索 Math 类、用于金融精度计算的 BigDecimal、支持语言环境的 NumberFormat,以及 Java 中实用的数值问题求解。

07

switch 表达式与箭头语法

A24 节课PRO

switch 表达式与箭头语法:箭头式 switch、将 switch 用作表达式等

08

文本块与多行字符串

A24 节课PRO

文本块与多行字符串:声明文本块、缩进与去除缩进等

09

var 与局部类型推断

A24 节课PRO

var 与局部类型推断:使用 var 声明局部变量、var 何时有助于提高可读性等

10

包装类与自动装箱

A24 节课PRO

包装类与自动装箱:基本类型与包装类型、自动装箱与拆箱等

11

Arrays 工具类

A24 节课PRO

Arrays 工具类:Arrays.sort 与排序、Arrays.binarySearch 等

12

Java 随机数与数学工具

A24 节课PRO

Java 随机数与数学工具:Math 类、生成随机数等

13

使用 BufferedReader 读取输入

A24 节课PRO

在 Java 中高效读取用户输入和文件输入。

14

Java 三元与条件表达式

A24 节课PRO

使用条件运算符编写简洁的决策逻辑。

15

Java 字符与 Character 方法

A24 节课PRO

使用 Character 类处理单个字符。

16

使用 printf 格式化输出

A24 节课PRO

使用格式说明符生成排版整齐的文本。

17

Java 带标签循环与流程控制

A24 节课PRO

使用 break、continue 和标签控制嵌套循环。

18

条件一:if/else 基础

A23 节课PRO

使用 if、else if 和 else 在 Java 中做出决定。利用比较运算符和逻辑运算符构建清晰的布尔表达式。课程简短,适合移动端学习,并配有可运行的示例。

19

条件二:运算符与 switch

A23 节课PRO

深入学习比较运算(==、!=、<、>、<=、>=)和布尔逻辑(&&、||、!)。了解优先级、使用括号进行分组、短路行为以及德摩根定律。

20

循环一:while 与 do-while

A22 节课PRO

逐步学习 while 循环:初始化、条件、更新,以及如何避免无限循环。练习一些安全地重复执行操作的小模式。课程适合移动端学习,内容简短,并配有可运行的代码。

21

循环二:for 与模式

A23 节课PRO

掌握 for 循环:在一行中完成初始化、条件和更新。编写计数循环、求和程序和简单模式。安全地学习 break 和 continue。

22

Java运算符

A21 节课PRO

Java 提供了许多用于处理数据的运算符。借助这些运算符,我们可以操作现有数据。其中包括算术运算符,也就是我们在数学中最熟悉的运算符类型。

23

Java中的字符串

A21 节课PRO

Java 使用字符串数据类型来保存文本数据。字符串是引用数据类型,而不是 Java 中的基本数据类型。本课程将学习如何在 Java 语言中使用 String。

24

数组一:一维数组

A23 节课PRO

学习一维数组:了解数组是什么,如何声明和创建数组,访问和更新元素,使用 length ,以及使用 for 和增强型 for-each 进行遍历。

25

数组 II:二维数组

A26 节课PRO

学习 Java 中的二维数组:声明和创建二维数组,访问行和列,并使用嵌套循环进行遍历。练习计算行和列的总和,以及格式化输出。

26

方法 I:基础

A23 节课PRO

掌握 Java 方法的基础知识:方法签名、参数与实参的区别、调用约定和基本设计。通过简短、聚焦且可运行的示例进行学习。

27

方法 II:设计与复用

A23 节课PRO

有效地设计和复用方法:理解 Java 按值传递的语义,在静态方法和实例方法之间做出选择,并将问题拆分为清晰且可测试的例程。

28

Java 枚举

B14 节课PRO

学习如何在 Java 中定义和使用枚举:枚举常量、字段、方法、使用枚举的 switch 表达式,以及 EnumSet/EnumMap 集合。

29

Java Records 与不可变数据

B14 节课PRO

了解 Java Records(Java 16+):创建不可变数据载体、紧凑构造函数、为记录定义自定义方法,以及何时应使用记录而不是类。

30

StringBuilder 与字符串性能

B14 节课PRO

StringBuilder 与字符串性能:字符串为何不可变、使用 StringBuilder 构建字符串等

31

BigDecimal 与 BigInteger

B14 节课PRO

BigDecimal 与 BigInteger:金额为何不使用 double、使用 BigDecimal 等

32

java.time 日期与时间 API

B14 节课PRO

java.time 日期与时间 API:LocalDate、LocalTime、LocalDateTime、Instant 和 Duration 等

33

Java Optional

B14 节课PRO

使用 Optional 消除 NullPointerExceptions:以符合 Java 17+ 惯用方式创建、映射、筛选和使用 Optional。

34

Java 字符串深入探究

B14 节课PRO

超越基础字符串:学习 StringBuilder、StringJoiner、正则表达式、String.format、文本块和常见的字符串算法模式。

35

Java 可变参数、重载与静态成员

B14 节课PRO

掌握方法重载解析、可变参数、静态字段和静态方法,以及 Java 中的工具类设计模式。

36

Java 内部类与匿名类

B14 节课PRO

探索嵌套类的不同形式:静态嵌套类、内部类、局部类、匿名类,以及每种形式的适用场景。

37

Java 迭代器与 Iterable

B14 节课PRO

实现自定义 Iterable 和 Iterator 接口,让您自己的数据结构兼容 for-each 循环和 Java Collections 框架。

38

Java 比较器与排序

B14 节课PRO

在实际数据场景中,使用 Comparable、Comparator、方法引用和多级排序链对集合与数组进行排序。

39

Java LinkedList 与 Deque

B14 节课PRO

理解 LinkedList 的内部原理、双向链表结构、Deque 操作、栈模拟,以及 LinkedList 何时优于 ArrayList。

40

Java TreeMap 与 TreeSet

B14 节课PRO

掌握有序集合:TreeMap 的 NavigableMap 操作、用于保存唯一有序元素的 TreeSet、subMap/headMap/tailMap,以及红黑树基础。

41

Java NIO.2 Path 与 Files API

B14 节课PRO

使用现代 java.nio.file API:创建 Path、使用 Files 工具方法、通过 walkFileTree 遍历目录,以及使用 WatchService 监视目录。

42

Java 序列化与对象持久化

B14 节课PRO

理解 Java 序列化:Serializable 接口、transient 字段、serialVersionUID、自定义 writeObject/readObject,以及 JSON 等现代替代方案。

43

密封类与接口

B14 节课PRO

密封类与接口:声明密封类型、permits 子句等

44

instanceof 与记录的模式匹配

B14 节课PRO

instanceof 与记录的模式匹配:instanceof 的模式匹配、记录模式等

45

使用 Pattern 和 Matcher 处理正则表达式

B14 节课PRO

使用 Pattern 和 Matcher 处理正则表达式:编译模式、查找与匹配等

46

HashMap 内部原理与 equals/hashCode

B14 节课PRO

HashMap 内部原理与 equals/hashCode:HashMap 的工作方式、equals/hashCode 契约等

47

EnumMap、EnumSet 与高级枚举

B14 节课PRO

EnumMap、EnumSet 与高级枚举:带字段和方法的枚举、枚举中的抽象方法等

48

使用 SLF4J 和 Logback 进行日志记录

B14 节课PRO

使用 SLF4J 和 Logback 进行日志记录:结构化日志的意义、SLF4J 门面与日志记录器等

49

包与访问修饰符

B11 节课PRO

Java 使用访问修饰符来限制对象之间的访问。这种限制有时适用于类级别,也可以适用于变量、方法或构造方法级别。

50

迷你项目:单词统计

B13 节课PRO

构建一个小型单词统计工具:对文本进行分词、规范化和计数,并报告排名靠前的结果。先规划,再实现。

51

面向对象编程 I:类与对象

B13 节课PRO

学习 Java 中类和对象的基础知识。创建简单的类,实例化对象,并理解它们在面向对象编程中的作用。

52

面向对象编程 II:实践

B13 节课PRO

Java 中的日常面向对象编程实践:this 关键字、可读的 toString、正确实现 equals 和 hashCode,以及适用于小型应用的实用技巧。

53

继承 I

B13 节课PRO

学习 Java 继承的基础知识:扩展基类,调用 super 构造方法,并安全地复用通用行为。

54

抽象与接口

B13 节课PRO

Java 中的抽象类与接口:了解何时使用它们、如何声明它们,以及它们如何引导设计。

55

迷你项目:形状层次结构

B13 节课PRO

设计并实现一个小型形状层次结构,其中包含抽象基类、具体形状和多态行为。

56

集合 I:列表与集合

B13 节课PRO

学习 Java 中的列表和集合:了解各自的适用场景、基本操作和简单的遍历模式。

57

集合 II:映射与算法

B13 节课PRO

学习使用映射进行键到值的查找和频率统计,并结合列表与集合实现简单算法。

58

异常 I:基础

B13 节课PRO

学习异常处理的基础知识:通过简单示例掌握 try、catch 和 finally 代码块。

59

异常 II:实践

B13 节课PRO

通过自定义异常、throw 语句和防御式编码,应用异常处理。

60

文件与输入输出 I

B13 节课PRO

学习 Java NIO Path 和 Files 类:安全地创建、检查和删除文件。

61

文件与输入输出 II

B13 节课PRO

学习 Java 对象序列化:将对象写入文件,并再次读取对象。

62

迷你项目:日志分析器

B13 节课PRO

构建一个简单的日志分析器,用于读取、解析和汇总日志文件。

63

构建工具:Maven 与 Gradle

B14 节课PRO

构建工具:Maven 与 Gradle:Maven 项目结构、Maven 插件与目标等

64

JDBC 与连接池

B14 节课PRO

JDBC 与连接池:JDBC 基础、PreparedStatement 等

65

Java Stream 收集器深入探究

B24 节课PRO

超越基础 Stream:学习 groupingBy、partitioningBy、toMap、counting、summarizingInt、joining,以及为复杂聚合构建自定义收集器。

66

Java 方法引用

B24 节课PRO

使用方法引用简化 lambda 表达式:学习静态方法、实例方法、任意对象实例方法和构造函数引用,并结合实际函数式接口示例。

67

Java 设计模式:创建型

B24 节课PRO

在 Java 中实现四种核心创建型模式:线程安全的 Singleton、Factory Method、Abstract Factory,以及使用流式 API 的 Builder。

68

Java 设计模式:行为型

B24 节课PRO

掌握 Java 中的行为型设计模式:Observer、Strategy、Command 和 Template Method,并通过真实应用中的具体用例进行学习。

69

深入了解函数式接口

B24 节课PRO

深入了解函数式接口:Function 和 BiFunction、Supplier 和 Consumer 等

70

基本类型流

B24 节课PRO

基本类型流:IntStream 和 LongStream、范围与聚合操作等

71

有界通配符与 PECS

B24 节课PRO

有界通配符与 PECS:上界通配符、下界通配符等

72

接口与泛型

B23 节课PRO

学习接口的实际应用,以及 Java 泛型的基础知识,从而编写更安全、可复用的代码。

73

Java 自定义注解

B24 节课PRO

定义自定义注解、保留策略和目标,并在运行时通过反射、编译时通过注解处理器处理这些注解。

74

高级流操作与 Spliterator

B24 节课PRO

掌握 Stream 的高级功能:对嵌套结构使用 flatMap、使用 peek 调试、并行流的陷阱、Spliterator 内部机制,以及无限流。

75

Spring Boot:配置与依赖注入

B24 节课PRO

掌握 Spring Boot 自动配置、应用属性、配置文件、@Bean、@Component、@Service、@Repository,以及构造器注入的最佳实践。

76

Spring Data JPA:实体与仓库

B24 节课PRO

使用 JPA 注解将 Java 实体映射到数据库表,定义 Spring Data 仓库,编写 JPQL 和原生查询,并处理实体关系。

77

Spring Boot REST API:验证与错误处理

B24 节课PRO

构建健壮的 REST API:使用 @Valid 进行 Bean Validation、自定义验证器、使用 @ControllerAdvice 进行全局异常处理,以及 RFC 7807 问题详情。

78

使用 JUnit 5 进行测试:参数化测试与集成测试

B24 节课PRO

超越基础单元测试:使用 @MethodSource 和 @CsvSource 编写参数化测试,使用 Testcontainers 进行数据库集成,以及使用 Spring Boot 测试切片。

79

Java 安全:哈希、加密与 JWT

B24 节课PRO

在 Java 中实现安全基础:使用 MessageDigest 进行哈希、AES 加密、HMAC-SHA256,以及不依赖外部身份验证库创建和验证 JWT。

80

Java 模块系统(JPMS)

B24 节课PRO

Java 模块系统(JPMS):module-info.java、requires 和 exports 等

81

现代 HTTP 客户端

B24 节课PRO

现代 HTTP 客户端:java.net.http.HttpClient、异步请求等

82

GraalVM 与原生映像

B24 节课PRO

GraalVM 与原生映像:什么是 GraalVM、构建原生映像等

83

Lambda 表达式与函数式接口

B23 节课PRO

学习 Java Lambda 表达式和函数式接口。

84

流 I:处理管道

B23 节课PRO

学习如何使用 Java 流,通过处理管道处理数据。

85

Spring Boot 入门

B23 节课PRO

开始学习 Spring Boot:设置项目、使用启动器,并运行您的第一个应用。

86

数据与服务

B23 节课PRO

学习如何将 Spring Data JPA 和 H2 数据库与存储库结合使用。

87

测试与交付

B23 节课PRO

使用 WebTestClient/JUnit 测试 Spring 应用,并学习配置和打包。

88

迷你项目:REST API

B24 节课PRO

使用 Spring Boot 设计、实现并测试 REST API。

89

Java ExecutorService 与线程池

C14 节课PRO

使用 ExecutorService 管理线程生命周期:固定、缓存和定时线程池,提交 Callable 任务,并处理 Future 结果。

90

Java 锁与原子变量

C14 节课PRO

超越 synchronized:学习 ReentrantLock、ReadWriteLock、StampedLock、AtomicInteger、AtomicReference,以及无锁数据结构模式。

91

并行流与性能

C14 节课PRO

并行流与性能:创建并行流、并行处理何时有帮助等

92

Java 内存管理与垃圾回收

C14 节课PRO

理解 JVM 内存模型:堆区域(新生代、老年代、Metaspace)、GC 算法(G1、ZGC)、内存泄漏、使用 JVisualVM 进行性能分析,以及调优标志。

93

Java CompletableFuture 与异步流水线

C14 节课PRO

使用 CompletableFuture 组合异步计算:thenApply、thenCompose、allOf、anyOf、exceptionally,以及构建非阻塞流水线。

94

Java 反射与动态代理

C14 节课PRO

使用反射 API 在运行时检查并调用类、创建动态代理,并理解 Spring 等框架如何在底层使用反射。

95

JVM 内部机制:类加载与字节码

C14 节课PRO

深入了解 JVM:类加载阶段、引导类加载器/扩展类加载器/应用类加载器的层次结构、使用 javap 检查字节码,以及 JIT 编译基础。

96

虚拟线程(Project Loom)

C14 节课PRO

虚拟线程(Project Loom):什么是虚拟线程、创建虚拟线程等

97

结构化并发

C14 节课PRO

结构化并发:结构化并发模型、StructuredTaskScope 等

98

使用 JMH 进行微基准测试

C14 节课PRO

使用 JMH 进行微基准测试:为何使用 JMH、编写基准测试等

99

Java 性能分析与调优

C14 节课PRO

Java 性能分析与调优:识别性能瓶颈、Java Flight Recorder 等

100

流 II:性能与陷阱

C13 节课PRO

学习流的高级行为,包括排序和短路处理。

101

并发 I

C12 节课PRO

通过线程、执行器和同步机制,了解 Java 并发编程。

102

并发 II

C13 节课PRO

学习高级并发:同步、锁、原子操作和常见问题。

103

迷你项目:并行统计

C13 节课PRO

构建一个项目,使用流和并发机制并行计算统计数据。

104

外部函数与内存 API

C24 节课PRO

外部函数与内存 API:为何选择 FFM 而非 JNI、MemorySegment 与 Arena 等

常见问题

常见问题解答

Java Academy 课程免费吗?

免费。你可以免费开始 Java Academy 课程并完成它的所有互动课程。可选的 PRO 订阅解锁高级 AI 工具和可分享的证书。

学习 JAVA 需要有先前的经验吗?

不需要。课程从基础开始,逐步进阶到更高难度的主题,所以即使你没有任何 JAVA 基础也可以开始。

我在 CoddyKit 上怎样学习 JAVA?

学以致用。简洁的互动课程将清晰的讲解与实时动手编程练习结合,24/7 AI 导师在你遇到困难时提供个性化帮助。

完成 Java Academy 后能获得证书吗?

可以。PRO 学员可以参加考试,获得 Java Academy 课程的可分享的完成证书,其中包含可验证的代码。

我能在手机上学习 JAVA 吗?

可以。CoddyKit 支持网页版和原生 iOS、Android 应用,你可以在任何设备上学习 JAVA,进度会自动同步。

立即开始 Java Academy

加入数千名学习者,通过 AI 驱动的课程掌握编程。

免费开始 →浏览所有课程