“Java工程师快速学会Kotlin”的学习路径基础上,补充完整的学习内容清单(覆盖从入门到进阶的所有核心知识点),形成一套“全量、可落地”的 Kotlin 学习体系。

一、核心学习原则(先明确)

  1. 基于 Java 知识,只学“差异点+Kotlin 独有特性”,不重复学通用概念(如类、接口、继承);
  2. 按“高频优先、循序渐进”排序,先搞定日常开发 80% 的场景,再补冷门语法;
  3. 每学一个知识点,必须配套“改写 Java 代码”的实战,拒绝只看不学。

二、全量学习内容清单(按阶段划分,优先级)

阶段 1:基础语法(优先级:★★★★★,1~2 天)

目标:完成 Java → Kotlin 基础语法映射,能独立写简单工具类/POJO。

学习内容 Java 对应概念 核心差异 实战练习 验收标准
变量与常量(val/var) final/非 final 变量 1. val=不可变引用(类似 final),var=可变
2. 类型自动推断,无需显式声明
1. 把 Java 中的变量声明(如 String、int、List)全改成 Kotlin 写法
2. 用 val 声明常量,var 声明可变变量
能区分 val/var,写出无冗余类型的变量声明
空安全(Type?/?. / ?: / !!) if (obj != null) 判空 1. Type?=可空类型,Type=非空类型(默认)
2. ?. = 安全调用,?: = 空值合并
3. !! = 非空断言(谨慎用)
1. 改写 Java 中所有判空逻辑(如 user != null ? user.getName() : “默认”)
2. 故意写空值场景,验证编译期拦截 NPE
能彻底避免 NPE,用简洁语法替代 Java 繁琐判空
数据类(data class) POJO + getter/setter/equals/hashCode 1. 一行生成完整 POJO,自动包含 copy/toString 方法
2. 支持解构声明
1. 把 Java 中任意一个 POJO(如 User、Order)改写成 data class
2. 调用 copy 方法复制对象,用解构提取属性
能替代所有 Java POJO,无需手写样板代码
函数声明与参数 Java 方法(含重载/默认参数) 1. 函数用 fun 声明,支持默认参数(替代方法重载)
2. 单表达式函数(= 简化返回值)
1. 把 Java 中的工具方法(如 String 判空、数字计算)改写成 Kotlin 函数
2. 用默认参数替代 Java 的方法重载
能写无冗余的 Kotlin 函数,减少重载代码
伴生对象(companion object) static 方法/静态变量 1. 替代 static,属于类的成员而非实例
2. 可实现接口、定义常量
1. 把 Java 中的静态工具类(如 StringUtils)改写成 Kotlin 伴生对象
2. 在伴生对象中定义常量/静态方法
能替代所有 static 用法,Java 可正常调用
集合操作(List/Set/Map) Java Collection + Stream API 1. 原生支持函数式操作(filter/map/forEach),无需 stream()
2. 区分只读集合(listOf)和可变集合(mutableListOf)
1. 把 Java 中 Stream 过滤/映射逻辑(如 filter+map+collect)改写成 Kotlin 集合操作
2. 用 for-in 遍历集合,替代 Java 的 for-each
一行完成集合过滤/映射,无需 Stream/Collectors
控制流(if/for/while/when) if/for/switch 1. when 替代 switch,支持任意类型匹配
2. if 是表达式(可直接赋值)
1. 把 Java 中的 switch 改写成 when
2. 用 if 表达式替代 Java 的三元运算符
能用 when 处理所有分支逻辑,代码更简洁
阶段 2:中级特性(优先级:★★★★,3~5 天)

目标:实现 Kotlin 与 Java 项目互操作,能写完整业务类(Service/Controller)。

学习内容 Java 对应概念 核心差异 实战练习 验收标准
扩展函数/扩展属性 Java 工具类(如 StringUtils) 1. 给任意类(包括 Java 类)新增方法/属性,无需继承
2. 扩展函数优先于工具类
1. 给 String 新增 isPhone()、isEmail() 扩展函数
2. 给 List 新增 filterAdult() 扩展函数
能替代所有 Java 工具类,调用方式像原生方法
构造器(主构造器/次构造器) Java 构造器(含重载) 1. 主构造器写在类名后,简洁高效
2. 次构造器用 constructor 声明,可调用主构造器
1. 给 data class 加主构造器参数,给复杂类加次构造器
2. Spring 项目中用构造器注入(无需 @Autowired)
能写任意复杂度的构造器,适配 Spring 依赖注入
异常处理 Java 受检异常(throws/try-catch) 1. 无受检异常,无需声明 throws
2. try 是表达式(可直接赋值)
1. 改写 Java 中带 throws 的方法(如 IO 操作),去掉 throws 声明
2. 用 try 表达式捕获异常并赋值
能简化异常处理,无需冗余的 throws 声明
智能类型转换 Java 强制类型转换(instanceof + (Type)) 1. 无需手动强转,编译器自动识别类型
2. 支持 is/!is 类型判断
1. 改写 Java 中 instanceof + 强转的逻辑(如 if (obj instanceof User) { User u = (User)obj; }) 能无冗余完成类型判断+转换
作用域函数(let/run/with/apply/also) Java 链式调用/临时变量 1. 简化对象链式操作,减少临时变量
2. 不同函数对应不同场景(let=传参,apply=修改属性)
1. 用 apply 初始化对象(如 User().apply { id=1; name=“张三” })
2. 用 let 处理可空对象(user?.let { println(it.name) })
能根据场景选对作用域函数,简化代码
Kotlin 与 Java 互操作 Java 调用 Kotlin/Kotlin 调用 Java 1. Kotlin 调用 Java:无缝直接调
2. Java 调用 Kotlin:注意 @JvmStatic/@JvmField 注解
1. Kotlin Service 调用 Java Mapper
2. Java Controller 调用 Kotlin Service
3. 给 Kotlin 伴生对象加 @JvmStatic,让 Java 像 static 一样调用
项目中 Kotlin/Java 代码可双向调用,无兼容问题
阶段 3:进阶特性(优先级:★★★,6~7 天)

目标:掌握 Kotlin 核心优势,解决 Java 痛点场景(异步、复杂逻辑)。

学习内容 Java 对应概念 核心差异 实战练习 验收标准
协程(Coroutine) 线程池/CompletableFuture/@Async 1. 轻量级“虚拟线程”,开销远低于线程
2. 同步写法实现异步,无回调地狱
3. 支持挂起函数(suspend)
1. 把 Java 中 @Async 异步方法改写成协程
2. 用 withContext(Dispatchers.IO) 处理 IO 异步(数据库/网络请求)
能替代所有 Java 异步方案,代码更简洁
密封类(sealed class) 枚举 + 继承 1. 限制子类继承,比枚举更灵活
2. 配合 when 使用,编译期检查分支完整性
1. 用密封类定义业务状态(如 OrderStatus:SUCCESS/FAIL/PENDING)
2. 配合 when 处理所有状态,验证无遗漏分支
能替代复杂枚举/状态类,避免分支遗漏
委托(by 关键字) 设计模式-委托模式 1. 用 by 关键字一键实现委托,无需手动写委托逻辑
2. 支持属性委托/类委托
1. 用类委托实现接口(如 class A by B())
2. 用 lazy 委托实现延迟加载(替代 Java 双重检查锁)
能简化委托模式代码,实现延迟加载等场景
高阶函数与 Lambda Java 8 Lambda + 函数式接口 1. 原生支持高阶函数(参数/返回值是函数)
2. Lambda 语法更简洁,支持函数引用
1. 写一个高阶函数(如 fun calculate(a: Int, b: Int, op: (Int, Int) -> Int))
2. 用 Lambda 作为参数调用高阶函数
能写任意复杂度的函数式代码,替代 Java 繁琐的函数式接口
注解与反射 Java 注解/反射 1. 支持 Java 所有注解,新增 @JvmName/@JvmOverloads 等适配注解
2. 反射 API 更简洁,支持属性反射
1. 在 Kotlin 中使用 Spring 注解(@Service/@Controller)
2. 用反射获取 data class 的属性值
能适配所有 Java 注解,反射操作更简洁
阶段 4:冷门/高级语法(优先级:★★,8~14 天)

目标:查漏补缺,覆盖所有 Kotlin 语法,应对面试/复杂场景。

学习内容 适用场景 实战练习
操作符重载(operator) 自定义类支持 +、-、* 等操作符(如 Money 类相加) 给自定义类(如 Money)重载 + 操作符,实现 money1 + money2
内联函数(inline) 优化高阶函数性能,减少字节码冗余 给高阶函数加 inline 关键字,对比编译后的字节码
类型别名(typealias) 简化复杂类型(如 Map<String, List>) 用 typealias 定义别名:typealias UserMap = Map<String, List>
通道/流(Channel/Flow) 协程版的生产者-消费者/响应式编程 用 Flow 替代 Java 的 RxJava,实现流式数据处理
Kotlin DSL 编写领域特定语言(如 Gradle 脚本、HTML 构建) 写一个简单的 HTML DSL,用 Kotlin 构建 HTML 结构
阶段 5:框架整合(优先级:★★★★,贯穿全程)

目标:掌握 Kotlin 与主流框架的整合,适配实际工作场景。

框架/场景 核心学习内容 实战练习
Spring Boot 1. 依赖配置(kotlin-stdlib/kotlin-reflect)
2. 构造器注入(无需 @Autowired)
3. 协程与 Spring 整合
用 Kotlin 写一个完整的 Spring Boot 接口(Controller+Service+Mapper)
MyBatis 1. Mapper 接口无缝调用
2. 结果集映射(支持 data class)
用 Kotlin 写 MyBatis 查询,返回 data class 类型的结果
Android(可选) 1. Activity/Fragment 用 Kotlin 编写
2. 扩展函数简化 View 操作
写一个简单的 Android 页面,用 Kotlin 实现点击事件/控件绑定

三、全量学习资源(按类型分类)

1. 官方文档(权威,优先看)
  • 《Kotlin 核心语法》:https://kotlinlang.org/docs/basic-syntax.html
  • 《Java 到 Kotlin 互操作》:https://kotlinlang.org/docs/java-to-kotlin-interop.html
  • 《协程官方指南》:https://kotlinlang.org/docs/coroutines-guide.html
  • 《Kotlin for Java Developers》(精简版):https://kotlinlang.org/docs/jvm-get-started.html
2. 视频资源(碎片化学习)
  • B 站:《Kotlin 从入门到精通(Java 工程师版)》(时长 3~5 小时,重点看基础+中级)
  • 慕课网:《Kotlin 实战与进阶》(覆盖框架整合+协程)
3. 工具辅助
  • IDEA 自带转换工具:选中 Java 代码 → 右键 → Convert Java File to Kotlin File(快速对比写法)
  • Kotlin 在线编译器:https://play.kotlinlang.org/(无需本地环境,直接练语法)
4. 实战项目(落地练习)
  • 小项目 1:用 Kotlin 重构你当前工作中的一个工具类模块(如 StringUtils、DateUtils);
  • 小项目 2:用 Kotlin 写一个完整的“用户管理”微服务(含增删改查+异步接口);
  • 小项目 3:用 Kotlin 协程实现一个“批量查询+异步处理”的业务场景(替代 Java 线程池)。

四、学习验收标准(全量掌握的核心标志)

  1. 能独立用 Kotlin 写一个完整的 Spring Boot 项目,无任何 Java 代码;
  2. 能把任意一段 Java 代码(工具类/业务逻辑/异步操作)改写成更简洁的 Kotlin 代码;
  3. 能解释 Kotlin 核心特性的优势(如空安全、协程),并说明在项目中解决了哪些 Java 痛点;
  4. 面试中能回答 Kotlin 高频问题(如 val vs var、协程原理、扩展函数实现方式)。

总结

  1. 全量学习内容按“基础→中级→进阶→框架整合”排序,优先攻克★★★★★和★★★★的高频知识点,冷门内容可按需补充;
  2. 每个知识点必须配套“改写 Java 代码”的实战,拒绝纯理论学习;
  3. 核心目标不是“背完所有语法”,而是“用 Kotlin 解决 Java 开发中的实际问题”,最终实现开发效率提升 30%~50%。

这套清单覆盖了 Kotlin 从入门到进阶的所有核心内容,你可以按天分配任务,完成一个打勾一个,确保无遗漏,且全程贴合 Java 工程师的认知习惯,学习成本最低、收益最高。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐