CodeGym
促销
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • 自定义 Collector 和 Spliterator

    JAVA 25 SELF
    等级 33,课时 4
    本讲解说明如何基于 Stream API 通过 Collector 编写自定义收集器,以及在何种情况下这样做确有必要;同时演示如何实现自己的 Spliterator,以高效地进行顺序与并行数据遍历。我们将逐步讲解收集器的组成部分( supplier、 accumulator、 combiner、 finisher、 characteristics),给出多重映射和 Top-N 的示例,讨论 trySplit 的策略,并说明如何正确设置特性( ORDERED、 SIZED、 SUBSIZED 等)。
    可用
  • List.of, Set.of, Map.of — 不可变集合

    JAVA 25 SELF
    等级 34,课时 0
    本讲解读 Java 9+ 中的不可变集合:工厂方法 List.of、 Set.of、 Map.of 与 Map.ofEntries。我们将它们与包装器 Collections.unmodifiableList 对比,讨论限制(禁止修改、禁止 null、集合元素与 Map 键禁止重复)、元素顺序与性能。还会说明 Map.of 的 10 对限制以及常见异常: UnsupportedOperationException、 NullPointerException、 IllegalArgumentException。另外给出实践示例,展示这些集合如何简化设计并提升读操作的线程安全性。
    可用
  • Map.copyOf、Set.copyOf 及其他实用工具

    JAVA 25 SELF
    等级 34,课时 1
    在本讲中,我们讲解 Java 10 中引入的不可变集合副本: List.copyOf、 Set.copyOf 和 Map.copyOf。你将了解它们与 Collections.unmodifiable* 包装器的区别、适用的限制(禁止 null、不可变性)、何时会返回同一个对象,以及为何不应依赖具体实现。文中展示了实际应用场景与常见错误,包括与 Map.of 和 Map.ofEntries 的混淆。
    可用
  • CopyOnWrite 集合与不可修改包装器

    JAVA 25 SELF
    等级 34,课时 2
    在本讲中,我们讨论用于“保护”集合的两种方法:来自 Collections.unmodifiable* 的不可修改包装器,以及 List.of/ Set.of/ Map.of 工厂方法;还会介绍位于 java.util.concurrent 包中的线程安全 CopyOnWriteArrayList 和 CopyOnWriteArraySet。我们将理解包装器与真正不可变之间的区别、CopyOnWrite 结构适用的场景,以及实践中常见的错误。
    可用
  • 可变与不可变集合:区别与应用

    JAVA 25 SELF
    等级 34,课时 3
    在本讲中,我们将解析 Java 中可变与不可变集合之间的差异:何时选择 ArrayList/ HashSet,何时使用 Java 9+ 的工厂集合( List.of、 Set.of、 Map.of)以及通过 copyOf 创建的副本。我们将讨论安全性、线程安全性、调试的便利性、 Collections.unmodifiableList 包装器的坑点与实践用例,以及常见错误和规避方法。
    可用
  • 新的集合:SequencedCollection、SequencedSet、SequencedMap

    JAVA 25 SELF
    等级 34,课时 4
    在 Java 21 中新增了有序集合接口—— SequencedCollection、 SequencedSet 和 SequencedMap。它们为按元素顺序操作提供了统一契约:可以快速访问第一个/最后一个元素,并可通过 reversed() 将集合反转。本文将讲解哪些标准集合已经实现了它们、新增了哪些方法、如何在实际代码中使用,以及常见错误和使用细节。
    可用
  • java.io 与 java.nio 基础:差异与 API 演进

    JAVA 25 SELF
    等级 35,课时 0
    这场讲座是关于 Java 中文件输入/输出演进的简明指南:从“经典”的 java.io 包(包含 File、 FileInputStream/ FileOutputStream 以及字符流 Reader/ Writer)到现代的 java.nio.file(NIO.2),配合 Path、 Files 和 FileSystem。我们将解析两种方式的差异、异步 IO 的优势所在、如何安全迁移( File . toPath() ⇄ Path . toFile()),并给出实用示例、API 选型速查以及常见错误。
    可用
  • File、Path、Files 类:概览与对象创建

    JAVA 25 SELF
    等级 35,课时 1
    在本讲中,我们解析 Java 文件 API 的三大关键实体:历史悠久的 File、NIO.2 中现代的路径抽象 Path,以及万能工具类 Files。我们将实践如何创建对象、在 File ↔ Path 间转换,如何通过 resolve 安全地拼接路径,通过 relativize 获取相对路径,用 normalize 进行规范化,并执行诸如 Files.exists、 Files.copy、 Files.move、 Files.readAllLines/ Files.write 等操作。最终——你将清晰理解何时使用各自方案,以及最常见的错误有哪些。
    可用
  • 文件读写:基础操作

    JAVA 25 SELF
    等级 35,课时 2
    在本讲中,我们讲解如何通过 java.nio.file.Files 工具快速处理文件:一次性读取整个文件( readAllBytes、 readAllLines),以及以显式编码 StandardCharsets.UTF_8 写入数据( write)。我们会讨论 IOException 的处理,给出实践示例,说明何时需要使用流式 API( BufferedReader、 BufferedWriter),并分析常见错误。
    可用
  • 文件操作模式:读取、写入、追加

    JAVA 25 SELF
    等级 35,课时 3
    本讲将讲解 Java 中的文件操作模式:覆盖写与追加写, StandardOpenOption 的选项组合(例如 APPEND、 CREATE、 TRUNCATE_EXISTING、 CREATE_NEW),通过 Files.write()/ Files.readAllBytes() 处理文本与字节,何时选择流( BufferedReader/ BufferedWriter),以及如何正确处理异常( IOException 等)。包含大量实践示例和常见错误解析。
    可用
  • 目录操作:创建、删除、查看内容

    JAVA 25 SELF
    等级 35,课时 4
    通过 java.nio.file 操作文件系统的实践讲解:使用 Files.createDirectory 和 Files.createDirectories 创建目录,使用 Files.delete 和 Files.deleteIfExists 删除,使用 Files.list 查看内容,讲解使用 Files.walkFileTree 进行递归删除。循序渐进的示例、迷你文件管理器,以及常见错误一节,帮助你在任何操作系统上自如地管理文件夹。
    可用
  • BufferedReader, BufferedWriter:缓冲与优势

    JAVA 25 SELF
    等级 36,课时 0
    为什么用“茶匙”式地读写文件代价高:我们来解析缓冲如何加速 Java 的文本 I/O。将看看 BufferedReader 与 BufferedWriter 如何构建在 FileReader/ FileWriter 之上,使用 readLine() 进行按行读取,使用 write()/ newLine() 写入与换行,必要时通过 flush() 强制刷新,设置缓冲区大小,并通过 InputStreamReader/ OutputStreamWriter 处理字符编码。何时应使用缓冲、何时不必用,以及最常见的错误。
    可用
  • 1
  • ...
  • 15
  • 16
  • 17
  • 18
  • 19
  • ...
  • 30
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • CodeGym for EDU
  • 常见问题
  • 支持
CodeGymCodeGym 是一个从零开始学习 Java 编程的在线课程。该课程是初学者掌握 Java 的完美方式。它包含 1200+ 个带即时验证的任务,以及必要的 Java 基础理论。为了帮助你在学习中取得成功,我们实现了一系列激励功能:测验、编码项目、关于高效学习的内容,以及 Java 开发者职业相关内容。
关注我们
界面语言
English Deutsch Español हिन्दी Français Português Polski বাংলা
简体中文
मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
“程序员是培养出来的,不是天生的” © 2026 CodeGym
MastercardVisa
“程序员是培养出来的,不是天生的” © 2026 CodeGym