Java courses and guides
Java is a robust, object-oriented programming language designed for enterprise applications, Android development, and large-scale systems. Known for its 'write once, run anywhere' philosophy, Java provides strong memory management, security features, and extensive libraries that make it ideal for building scalable, maintainable applications.

Explore Everything Java

现代 Java:从基础到高级架构
Java 广泛应用于企业系统和大规模云应用。最近的版本引入了多项功能,提升了开发者在分布式系统中的生产力和性能。本课程将介绍 Java 25 的关键语言与平台更新,帮助开发者构建或现代化其应用程序。 你将从建立 Java 思维开始,探索 JVM 架构及其核心组件。接着,你将深入学习高级面向对象编程,涵盖核心原则以及现代语法结构,如 Records 和 Sealed 类。你将通过 Stream API 探索函数式编程,使用 Collections 框架处理数据,并借助 Executor 框架和结构化并发构建高性能软件。最后,你将了解专业工具,包括 JUnit 6 和 Spring Boot。 课程结束时,你将对 Java 25 有扎实的理解,并具备在真实环境中设计、构建和部署安全、可扩展、可维护的后端应用程序的能力。
20h
Advanced

Grokking the Mobile System Design Interview
Grokking the Mobile System Design Interview 是移动工程师、架构师以及面试候选人的关键课程,旨在帮助设计真实世界中具备平台感知能力的系统。课程涵盖从架构模式(MVC、MVVM、VIPER、CLEAN)到性能优化、网络通信、数据/状态管理以及生命周期处理的端到端移动系统设计。 你将探索跨平台策略、平台差异、安全问题,以及在设计与复杂后端系统交互的移动客户端时所面临的权衡。SCADET 框架将这些内容串联起来,引导你进行结构化的设计思考。最后,通过聊天应用、信息流和 Google Maps 等真实系统案例,你将在具有实际影响力的情境中应用所学概念。
14h
Intermediate

在 AI 时代学习 Java
本课程旨在教授在人工智能时代如何编程。课程在初学者所需的清晰概念与人工智能解决计算问题(如 Java 专业人员)的能力之间取得平衡。采用 AI 赋能、动手实践、项目驱动的教学方式。 你将从 print 语句和变量开始,逐步学习条件判断、循环和数据结构。每个阶段都通过真实世界项目来巩固,例如收据生成器、智能手表步数追踪器或膳食计划器。你将练习如何向 AI 提示以生成、优化和调试代码,从而建立语法知识和现代编程工作流程。 课程最终以一个综合性的预算跟踪应用项目收尾,你将收集客户需求、实现功能并添加错误处理。随后,你会将应用重构为专业级别的代码。通过指导性课程、互动式 AI 支持以及六个完整的项目,你将掌握实用技能,并拥有一个可向科技界展示的作品集。
3h
Beginner

gRPC 入门
本课程将向你介绍 gRPC,这是一个高性能且开源的远程过程调用(RPC)框架,支持分布式服务之间快速、可扩展的通信。gRPC 广泛应用于微服务架构中,专为实时、低延迟系统设计。 你将学习 gRPC 的基本原理,以及它如何使用 Protobuf 来定义服务和序列化结构化数据。课程随后涵盖四种 RPC 类型:Unary、Server Streaming、Client Streaming 和 Bidirectional Streaming,并提供每种类型的实用示例,说明何时应使用它们。接着,你将使用客户端桩在 Java 中实现 gRPC。你将定义服务,构建并测试 gRPC 服务器和客户端,并通过动手练习设置基于 SSL/TLS 的安全通信以及身份验证。 课程结束时,你将掌握如何使用 Java 构建高效、安全且可扩展的应用程序。这些技能对于后端开发和分布式系统工作非常有价值。
7h
Beginner

算法的视觉入门
通过文章、可视化演示、测验和编程挑战,学习计算机科学的基础算法,包括搜索、排序、递归和图论。使用 Java、Python、C++ 或 JavaScript 实现相关挑战。
14h
Beginner

使用 JUnit 进行 Java 8 的实用单元测试
本课程中,你将学习如何使用 JUnit 为 Java 应用程序编写单元测试。你将从单元测试的基础知识开始,掌握在 JUnit 中编写基本测试所需的基础信息。你将了解 JUnit 的组织结构和断言机制,并掌握一些核心的单元测试质量实践,例如正确的 BICEP 原则和 CORRECT 方法。 课程后期,我们将关注更大的设计视角,探讨设计与单元测试之间的相互影响。你将对测试代码进行重构,并学习如何使用模拟对象来处理复杂的依赖关系。
13h
Intermediate

ASP.NET Core 中 SignalR 的终极指南
通过本全面指南,深入探索使用 ASP.NET Core 中的 SignalR 进行实时 Web 开发的世界。本课程将为你提供开发具备实时通信能力的交互式应用所需的所有技能,同时避免频繁的请求调用。 你将从了解 SignalR 是什么以及如何准备使用开始。接着,学习各种类型的 SignalR 客户端,包括 JavaScript、Blazor、WebAssembly、.NET、Java,甚至原生 WebSocket 客户端。你还将掌握发送消息、使用流式传输以及保障应用安全的方法。此外,你将深入了解如何在本地和云端扩展应用,特别是利用 Azure SignalR 服务实现规模化部署。 完成本课程后,你将熟练掌握使用 SignalR 构建实时应用的全流程。能够配置多种 SignalR 客户端,保护应用安全,并根据需求灵活扩展或缩减应用规模。这些实用技能将显著提升你的 Web 开发能力。
22h
Intermediate

Java快速入门全攻略
想学习一门新的编程语言吗?Java 是一种易于使用、高度可移植且广泛应用的语言,适用于开发多种类型的应用程序,如 Android 应用、桌面应用以及网站后端系统。本课程专为已经熟悉 C++、Python 或其他类似语言编程的程序员设计,详细讲解了 Java 语言特有的知识点,帮助开发者快速掌握该语言,并通过多个编程示例对比 Java 与其他语言的异同。
6h
Intermediate

Java中的测试驱动开发
测试驱动开发(TDD)和六边形架构使开发者能够构建出已知可靠且易于维护的代码。本课程所介绍的技术可确保代码以极少缺陷交付生产环境,并具备易于安全修改的结构。 你将首先学习测试驱动开发(TDD)的重要性,以及其带来的成本与收益,并通过糟糕代码的实例了解其对团队效率的影响。你将掌握良好代码与TDD如何及早发现设计和逻辑缺陷。你还将学习SOLID原则和六边形架构如何构建出高质量、可测试的代码,以及如何使用测试替身管理外部依赖。最后,你将把示例应用的领域逻辑与数据库层和Web层进行整合。 完成本课程后,你将熟练应对测试中的复杂问题,并掌握与外部系统集成的实用技术,从而显著提升你的开发实践水平。
32h
Intermediate

使用 Selenium 和 Java 设计测试自动化框架
对于任何应用程序,每次新版本发布时进行用户界面测试通常都非常耗时。UI测试自动化是模拟实际用户操作流程和业务用例最常见且最有效的方法。 在本课程中,你将学习如何使用 Java、Selenium 和 TestNG 从零开始设计一个测试自动化框架,用于自动化任何基于 Web 的应用程序。你将首先学习 Selenium 和 TestNG 的基础知识,然后逐步掌握构建管理、日志记录和报告等关键技能,这些内容对任何质量保证工程师或开发人员都至关重要。完成本课程后,你将成功创建一个 UI 测试自动化框架。
12h
Beginner

Java中的软件架构:设计与开发
本课程适合已有 Java Spring 框架开发经验的开发者,旨在帮助你学习如何实现对象-关系模型,以实现高效的数据管理和服务器端渲染。 在本课程中,你将学习如何使用 Spring 和 Hibernate 框架实现多种不同的关系模型。针对每种模型,你都将采用测试驱动开发的方法,逐步构建应用程序的各个层级。 完成本课程后,你将能够实现 15 种不同的对象-关系模型,并掌握敏捷开发的精髓。敏捷开发是一种非常流行的软件设计与开发方法论。
20h
Advanced

在 Azure DevOps 中运行 Selenium Java 测试
我们通常使用 Selenium WebDriver 和 Java 编写自动化测试。在开发和测试自动化代码时,我们会将代码本地运行在自己的计算机上。为了让其他人也能修改或运行这段代码,就需要将其添加到代码仓库中,以便他人访问。一旦代码进入仓库,就可以通过持续集成/持续部署(CI/CD)环境(如 Jenkins 或 Azure DevOps)中的流水线来执行。本课程的重点正是这一过程。 在本课程中,我们将一个基于 Java、TestNG 和 Selenium 构建的本地自动化项目添加到 Azure DevOps 项目中,共享代码仓库,并通过流水线运行其中的测试。
9h 30m
Intermediate

使用 JUnit 5 对 Java 应用程序进行单元测试
单元测试是每位开发者都应掌握的一项基础且必要的技能。在本课程中,你将学习什么是单元测试、为何它至关重要,以及如何使用 JUnit 5 框架对 Java 应用程序进行测试——这是目前 Java 开发者中最流行的单元测试框架。 课程从单元测试和 JUnit 5 的基础知识开始,逐步深入讲解核心概念,例如断言、假设,以及嵌套测试、参数化测试、重复测试等多种测试类型。 此外,你还将学习 JUnit 5 的一些高级特性,如 JUnit 5 扩展模型、依赖注入、如何将现有的 JUnit 4 单元测试迁移到 JUnit 5,以及如何将单元测试与 Maven 和 Gradle 集成。
3h 30m
Intermediate

学习Java
你将从 Java 基础开始学习,例如打印消息、进行数学运算和处理用户输入,然后逐步深入循环、条件语句以及面向对象编程。在此过程中,你将通过构建真实的应用程序(如游戏和菜单系统)来掌握如何使用类、方法和对象组织代码结构。 本课程注重实践操作与现实场景建模,让 Java 学习变得更轻松直观。无论你的目标是成为 Android 开发者或后端工程师,还是仅仅希望打下扎实的编程基础,这门课程都将帮助你编写清晰、结构化的代码,并自信地迈出软件开发的第一步。在开始第一节课之前,你无需具备任何编程知识。
10h
Beginner

Java 多线程在高级工程面试中的应用
Java 中的并发是高级工程面试中最复杂且高阶的主题之一。掌握并发与多线程知识,能让面试者具备显著优势。本课程系统讲解高级并发与多线程的基础内容,深入剖析监视器(Monitors)和延迟回调(Deferred Callbacks)等核心概念。同时,课程还构建了针对常见并发问题的简洁完整解决方案,涵盖面试中常被提及的经典问题,例如读者-写者问题和哲学家就餐问题。虽然学习本课程无需事先具备并发知识,但若已了解并发的基本概念,将更有助于理解。
15h
Beginner

Web 应用的六边形软件架构
本课程将全面讲解如何采用六边形架构(Hexagonal Architecture)风格构建Web应用程序。六边形架构通过将逻辑封装在应用程序的不同层次中,实现了关注点分离,从而提升了代码的隔离性、可测试性以及对业务核心代码的控制能力。 你将学习如何以清晰且易于维护的方式设计软件模块和完整的应用程序,同时掌握在特定应用场景和约束条件下选择并应用合适技术方案的能力。 完成本课程后,你将更深入地理解软件架构的实现方法,这是每位高级开发人员必备的核心技能。
6h 45m
Beginner

掌握动态规划面试
技术面试中一些最难的问题需要使用动态规划(Dynamic Programming,简称DP)来解决。动态编程是一种应用于递归解法的高级优化技术。然而,DP并非万能公式,需要通过练习才能掌握识别其底层DP模式的能力。只要方法得当,准备动态规划类面试题通常不需要超过几周时间。 本课程从DP基础概念入手,深入讲解五种常见的DP模式。你将学习如何将每种模式应用到多个相关问题中,并通过可视化方式理解模式的运行机制,同时体会到DP解法相较于朴素解法的优势。 完成本课程后,你将具备应对最具挑战性问题的能力,轻松掌握编码面试的核心要点,并更有信心地推动职业发展。 本课程还提供C++、JavaScript和Python版本,更多语言版本即将上线!
25h
Intermediate

编码面试与进阶必备的大O表示法
本课程面向缺乏计算机科学科班背景的专业人士,旨在为他们提供一份简单实用的算法复杂度入门指南。课程以通俗易懂的语言讲解核心概念,教授如何分析算法的时间复杂度,而无需具备深厚的数学基础。对于准备技术面试、希望复习复杂度相关知识或大O分析方法的读者,本课程也具有很高的参考价值。此外,课程内容还简要介绍了部分高级分析主题,帮助学习者更全面地理解复杂度理论的基本框架。
10h
Beginner
Frequently Asked Questions
Java is platform-independent, meaning code written once can run on any device with a Java Virtual Machine (JVM). It features automatic memory management, strong type checking, and built-in security features, making it ideal for enterprise applications and large-scale systems.
Yes, Java is excellent for beginners due to its clear syntax, strong documentation, and extensive community support. Its object-oriented nature helps new programmers understand fundamental programming concepts, and there are abundant learning resources available.
Java is versatile and used for enterprise applications, Android mobile apps, web applications with Spring framework, desktop applications, big data processing with Apache Spark, and microservices architecture. Major companies like Netflix, Amazon, and Google use Java extensively.