这门课解决什么工作场景

Kotlin 的基础语法学完之后,很多人会卡在“能读代码,但不敢写多线程或异步逻辑”的阶段。这门课把进阶路上最容易踩坑的四块内容拆开讲:异常处理、线程、协程,以及 Kotlin 与 Java 的互操作。对应到实际工作中,就是三类具体问题:第一,程序崩溃时你能否从堆栈信息里快速定位是哪个异常、该捕获还是该抛出;第二,做网络请求或后台任务时,用线程还是协程,任务怎么取消、生命周期怎么管;第三,项目里既有 Java 又有 Kotlin,两个语言之间互相调用时类型映射、静态成员、包级函数怎么处理。这些不是冷门概念,而是写 Android 后端或工具脚本时几乎每天都会碰到的场景。

适合什么基础,建议先看哪几块

这门课不是零基础入门。你需要已经掌握 Kotlin 的基本语法,比如变量、函数、类、lambda,至少写过一些简单的 Kotlin 程序。如果你只是刚看完变量和循环,直接上协程会懵。课程编号是“第4篇”,说明是某个系列里的进阶部分,所以最好把前三篇的基础内容过一遍再开始。

建议按顺序看,但可以根据自己的工作重心取舍。如果你的项目里 Java 代码还占多数,优先看“Kotlin与Java混编”这一块,它解决了你从 Java 迁移到 Kotlin 时最常见的数据类型映射和互相调用问题。如果你是新写纯 Kotlin 项目,协程部分更值得多看两遍。异常处理建议全看完,因为不管做任何方向,这一块都会用到。线程和协程之间有承接关系——先理解线程是什么,再看协程为什么更轻量,不建议直接跳。

学完能独立做什么,资料怎么配合练习

学完这门课,你应该能独立完成下面几件事:写一个带自定义异常和资源清理的 Kotlin 工具类;把一个原本用回调写的异步任务改用协程重写,并正确控制它的执状态和取消;在一个混合语言的项目里,用 Kotlin 调用 Java 的静态方法、访问 Java 字段,同时让 Java 代码能正常调用你写的 Kotlin 函数,不出现类型不匹配或空安全上的坑。更实际一点的说,你能看懂开源项目里协程和异常相关的代码,而不是只改改变量名。

资料配合练习的方法只有一条:每看完一节,立刻打开 IDE 敲一遍例子。比如看完 try-catch 表达式,就把同一段代码分别写成语句和表达式,比较两者的返回差异;看完协程创建,就写一个延迟三秒的任务,试试点取消会触发什么异常;看完 Java 互操作,就把一个 Java 的静态工具类翻译成 Kotlin,看双方怎么互相调用。视频里的时长从几分钟到二十几分钟不等,看到 20 分钟以上的也不用慌,那是内容比较密集,停下来动手练的时间比看的时间更重要。不要追求“把所有视频都刷完”,而是每节都留下自己改过的代码。如果是准备面试或正在做 Android 开发,协程和互操作这两块值得反复看两遍,结合自己项目里的真实问题做改造,比单纯刷视频见效快得多。

课程目录

课程目录57 集
  • 1-1 [异常处理] 18.1 从一个问题开始 (11:09).mp4
  • 1-2 [异常处理] 18.2 异常类继承层次 (08:38).mp4
  • 1-3 [异常处理] 18.3.1 try-catch语句 (13:21).mp4
  • 1-4 [异常处理] 18.3.2 try-catch表达式 (04:50).mp4
  • 1-5 [异常处理] 18.3.3 多catch代码块 (05:34).mp4
  • 1-6 [异常处理] 18.3.4 try-catch语句嵌套 (02:29).mp4
  • 1-7 [异常处理] 18.4.1 finally代码块 (08:38).mp4
  • 1-8 [异常处理] 18.4.2 自动资源管理 (04:10).mp4
  • 1-9 [异常处理] 18.5 throw与显式抛出异常 (09:55).mp4
  • 2-1 [线程] 19.1 基础知识 (08:11).mp4
  • 2-2 [线程] 19.2 创建线程 (14:26).mp4
  • 2-3 [线程] 19.3 线程状态 (07:21).mp4
  • 2-4 [线程] 19.4 线程管理 (20:36).mp4
  • 3-1 [协程] 20.1 协程介绍 (06:50).mp4
  • 3-2 [协程] 20.2 创建协程 (27:18).mp4
  • 3-3 [协程] 20.3 协程生命周期 (05:14).mp4
  • 3-4 [协程] 20.4 管理协程 (18:07).mp4
  • 4-1 [Kotlin与Java混合编程] 21.1 数据类型映射 (19:40).mp4
  • 4-2 [Kotlin与Java混合编程] 21.2 Kotlin调用Java (22:46).mp4
  • 4-3 [Kotlin与Java混合编程] 21.3.1 访问Kotlin属性 (02:55).mp4
  • 4-4 [Kotlin与Java混合编程] 21.3.2 访问包级别成员 (05:51).mp4
  • 4-5 [Kotlin与Java混合编程] 21.3.3 实例字段、静态字段和静态函数 (10:37).mp4
  • 4-6 [Kotlin与Java混合编程] 21.3.4 可见性 (10:05).mp4
  • 4-7 [Kotlin与Java混合编程] 21.3.5 生成重载函数 (04:15).mp4
  • 4-8 [Kotlin与Java混合编程] 21.3.6 异常检查 (02:55).mp4
  • 5-1 [Kotlin I/O与文件管理] 22.2 字节流 (17:53).mp4
  • 5-2 [Kotlin I/O与文件管理] 22.3 字符流 (11:06).mp4
  • 5-3 [Kotlin I/O与文件管理] 22.4 文件管理 (08:26).mp4
  • 6-1 [网络编程] 23.1 网络基础 (14:15).mp4
  • 6-2 [网络编程] 23.2 TCP Socket低层次网络编程 (27:11).mp4
  • 6-3 [网络编程] 23.3 UDP Socket低层次网络编程 (24:56).mp4
  • 6-4 [网络编程] 23.4 数据交换格式 (28:47).mp4
  • 6-5 [网络编程] 23.5 访问互联网资源 (31:34).mp4
  • 7-1 [Kotlin与Java Swing图形用户界面] 24.1 Java图形用户界面技术 (07:19).mp4
  • 7-2 [Kotlin与Java Swing图形用户界面] 22.1 Java I/O流概述 (12:49).mp4
  • 7-3 [Kotlin与Java Swing图形用户界面] 24.2 Swing技术基础 (19:14).mp4
  • 7-4 [Kotlin与Java Swing图形用户界面] 24.3 事件处理模型 (37:07).mp4
  • 7-5 [Kotlin与Java Swing图形用户界面] 24.4 布局管理 (26:29).mp4
  • 7-6 [Kotlin与Java Swing图形用户界面] 24.5.1 标签和按钮 (09:56).mp4
  • 7-7 [Kotlin与Java Swing图形用户界面] 24.5.2 文本输入组件 (10:29).mp4
  • 7-8 [Kotlin与Java Swing图形用户界面] 24.5.3 复选框和单选按钮 (10:18).mp4
  • 7-9 [Kotlin与Java Swing图形用户界面] 24.5.4 下拉列表 (05:09).mp4
  • 7-10 [Kotlin与Java Swing图形用户界面] 24.5.5 列表 (05:23).mp4
  • 7-11 [Kotlin与Java Swing图形用户界面] 24.5.6 分隔面板 (08:02).mp4
  • 7-12 [Kotlin与Java Swing图形用户界面] 24.5.7 使用表格 (19:07).mp4
  • 7-13 [Kotlin与Java Swing图形用户界面] 24.6 案例:图书库存 (24:58).mp4
  • 8-1 [轻量级SQL框架——Exposed] 25.1 MySQL数据库管理系统 (23:11).mp4
  • 8-2 [轻量级SQL框架——Exposed] 25.2 Kotlin与DSL语言 (09:19).mp4
  • 8-3 [轻量级SQL框架——Exposed] 25.3 使用Exposed框架 (38:29).mp4
  • 8-4 [轻量级SQL框架——Exposed] 25.4 案例:多表连接查询操作 (21:14).mp4
  • 9-1 [反射] 26.1 Kotlin反射API (04:25).mp4
  • 9-2 [反射] 26.2 引用类 (07:18).mp4
  • 9-3 [反射] 26.3 调用函数 (11:12).mp4
  • 9-4 [反射] 26.4 调用构造函数 (07:24).mp4
  • 9-5 [反射] 26.5 调用属性 (05:02).mp4
  • 10-1 [注解] 27.1 元注解 (06:30).mp4
  • 10-2 [注解] 27.2 自定义注解 (17:05).mp4