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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • 在集合与流(Stream)中使用 Lambda

    JAVA 25 SELF
    等级 48,课时 1
    在集合和 Stream API 中实践 Lambda 表达式:如何用精炼的 Lambda 替换匿名类,使用集合的方法( forEach、 removeIf、 sort、 replaceAll),并搭建数据处理流水线( stream → filter → map → sorted → collect)。我们将与匿名类进行对比,讨论“有效的 final”(effectively final)变量,给出主要操作的对照表,并分析常见错误。
    可用
  • Lambda 表达式的优缺点

    JAVA 25 SELF
    等级 48,课时 2
    在本讲中,我们讨论 Java 为什么引入了 Lambda 表达式:简洁与可读性、将行为作为参数传递、与集合及 Stream API( filter、 map、 forEach)的集成、对“有效” final 变量的捕获,以及通过运算符 -> 编写回调的便捷方式。与此同时,我们也会看看潜在的陷阱:调试长链、重载的歧义( Runnable vs Callable)、闭包限制、序列化以及嵌套的 Lambda。最后——何时使用 Lambda 的实用建议与常见错误解析。
    可用
  • Java 中的闭包(closure):要点

    JAVA 25 SELF
    等级 48,课时 3
    本讲将讲解什么是闭包以及它在 Java 中如何工作:lambda 和匿名类如何“捕获”外部变量,为什么局部变量必须是 final 或“有效 final”,捕获局部变量与访问类字段有何不同,以及 this 在 lambda 与匿名类中的行为。我们将展示使用 IntSupplier 的函数工厂,解析捕获的内部实现和常见错误(例如编译器消息 Variable used in lambda expression should be final or effectively final)。
    可用
  • 匿名类:与 Lambda 的区别与示例

    JAVA 25 SELF
    等级 48,课时 4
    在本讲座中,我们将讲解什么是 Java 中的匿名类,它与 Lambda 表达式有何不同:语法、能力(字段、附加方法、重写 toString/ equals)、作用域与 this 的行为、变量捕获(仅限 final/“有效 final”)。展示了基于 Runnable、 Comparator、 Predicate 的实践示例,并给出建议——何时选择 Lambda,何时选择匿名类。
    可用
  • 函数式接口:Predicate, Consumer, Supplier, Function

    JAVA 25 SELF
    等级 49,课时 0
    讲解包 java.util.function 中的关键函数式接口: Predicate、 Consumer、 Supplier、 Function——它们的输入/输出以及在 Stream API 中的应用( filter、 map、 forEach、 generate)。回顾“恰好一个抽象方法”的规则与注解 @FunctionalInterface,编写 lambda,比较匿名类,并用 User 类的示例进行练习,分析在 Predicate/ Function 等之间选择时的常见错误。
    可用
  • 函数组合:compose, andThen

    JAVA 25 SELF
    等级 49,课时 1
    这节课讲的是如何使用 Function 及其方法 compose 和 andThen,把小函数拼装成转换管道。我们将梳理调用顺序、类型兼容性,给出 Predicate( and、 or、 negate)、 Consumer( andThen)的示例,搭建实用的管道,并讨论常见错误:顺序混淆( f.compose(g) vs f.andThen(g))、类型不匹配,以及“面条式”的长链。你将学会使用 apply、 test、 accept,并构建可读、可复用的转换。
    可用
  • 将函数作为参数传递:示例

    JAVA 25 SELF
    等级 49,课时 2
    对在 Java 中传递“行为”的实用入门:如何将 lambda 表达式 ( ->) 和方法引用 ( ::) 与 Stream API 与集合一起使用。我们将梳理 java.util.function 中的标准函数式接口—— Comparator、 Predicate、 Function、 Consumer、 Supplier——学会编写通用方法,把行为作为参数传入,并避免常见错误。还会通过 Stream、 Optional 和自定义的列表处理工具来练习。
    可用
  • 使用 Stream API 的函数式风格

    JAVA 25 SELF
    等级 49,课时 3
    从命令式循环过渡到声明式的数据处理“流水线”,借助 Stream API:解析中间与终端操作、惰性求值、通过 toList()/ collect 收集结果,关键操作 map、 filter、 sorted、 flatMap、 reduce,以及 anyMatch/ allMatch/ noneMatch 等检查。我们将比较命令式与函数式风格,分析实用示例与常见错误,包括在收集集合时不合时宜的 forEach 以及过早使用 parallelStream()。
    可用
  • 函数式编程中的常见错误解析

    JAVA 25 SELF
    等级 49,课时 4
    在 Java 中使用 lambda 和 Stream API 时最常见的 10 个错误:变量捕获( final/ effectively final)、lambda 中 this 的行为、副作用与并行( parallelStream())、类型推断与 generics、处理 null 和 Optional、函数组合( compose/ andThen),以及受检异常(例如 IOException)。我们展示安全做法:使用 Objects::nonNull 进行过滤、使用终端操作( sum()、 collect(...))、采用线程安全集合,并将过长的链式调用拆解。
    可用
  • 监听器(Listeners)与事件接口

    JAVA 25 SELF
    等级 50,课时 0
    Java 中的事件模型如何运作:事件源生成事件,已订阅的监听器收到通知并作出响应。我们将拆解来自 Swing 的关键监听器接口 — ActionListener、 MouseListener、 KeyListener、 ChangeListener、 DocumentListener — 并展示如何通过 addActionListener 注册处理器以及实现方法 actionPerformed。我们会练习把监听器接入 JButton/ JFrame,比较匿名类与 Lambda 表达式,讨论常见错误与实用建议。
    可用
  • Swing 和 AWT 的事件:基础与示例

    JAVA 25 SELF
    等级 50,课时 1
    对 AWT/ Swing 事件模型的简要实用入门:创建按钮 JButton,通过 addActionListener 注册监听器,在 actionPerformed 中处理。讲解匿名类与 Lambda 表达式、常见监听器( MouseListener/ MouseAdapter、 KeyAdapter、 DocumentListener),基于 JFrame、 JButton、 JLabel 编写迷你应用,了解调用顺序与典型错误(在处理器里做重活、Lambda 中变量需要为 final/effectively final、忘记调用 addActionListener、移除监听器、使用 SwingWorker)。
    可用
  • 创建与处理自定义事件

    JAVA 25 SELF
    等级 50,课时 2
    在本讲中,我们将讲解如何在 Java 中设计自定义事件:基于 java.util.EventObject 创建事件类,通过 java.util.EventListener 定义监听器接口,添加订阅/退订机制( add...Listener/ remove...Listener)以及通知机制( fire...)。我们将以 DataLoader 和计数器为例进行实践,讨论匿名类与 lambda 表达式中的处理器,并分析常见错误(监听器中的异常、内存泄漏、 ConcurrentModificationException)。
    可用
  • 1
  • ...
  • 21
  • 22
  • 23
  • 24
  • 25
  • ...
  • 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