Kotlin 简介
本教程共 100 篇 · 第 9 篇 · 更新于 2026-07-28 · 约 6 分钟阅读
9. Kotlin 简介
本节目标:搞清楚 Kotlin 是什么、为什么 Android 官方推荐它、它跟 Java 比好在哪,以及该用什么版本。
Kotlin 是什么
Kotlin 是 JetBrains 公司开发的一门编程语言,2011 年首次公开,2016 年发布 1.0 正式版。它运行在 JVM 上,所以能和 Java 完全互操作,但语法更现代、更简洁、更安全。
2017 年 Google 宣布 Kotlin 成为 Android 官方开发语言,2019 年进一步明确 Kotlin-first 政策:官方文档示例 Kotlin 优先、Jetpack 新库优先支持 Kotlin、Compose 只能用 Kotlin 写。
本教程全程 Kotlin,Java 我们只在这里提一句历史背景,后面不再展开。
为什么选 Kotlin
Google 官方列了几个理由,我用大白话翻译一下:
1. 简洁,少写样板代码
Java 写一个数据类要几十行(字段、构造、getter、setter、equals、hashCode、toString),Kotlin 一行:
data class User(val name: String, val age: Int)
数据类自动生成 equals、hashCode、toString、copy、componentN,省下的时间能干正事。
2. 空安全,少崩
Java 最著名的崩溃是 NullPointerException(NPE),Kotlin 在类型系统里把「可空」和「非空」区分开:
var a: String = "abc"
a = null // 编译报错,String 默认非空
var b: String? = "abc"
b = null // OK,String? 表示可空
b.length // 编译报错,必须先判空
很多 NPE 在编译期就被拦下来了。Google 统计,含 Kotlin 代码的 Android 应用崩溃率降了 20%。
3. 互操作
Kotlin 能直接调 Java 代码,Java 也能调 Kotlin。你可以在一个项目里 Java 和 Kotlin 文件并存,慢慢迁移。现有 Java 项目不用重写,加 Kotlin 文件就行。
4. 协程
Kotlin 协程让异步代码写得像同步代码一样直观,比 Java 的回调、RxJava 链好读很多。Android 异步开发现在的标配就是协程,后面专门讲。
5. 现代特性
- 类型推断:不用处处写类型,编译器能猜。
- 扩展函数:能给现有类加方法,不改源码。
- 智能转换:判完类型不用强转。
- when 表达式:比 switch 强大。
- 默认参数、命名参数:少写重载。
Kotlin vs Java 对比
| 特性 | Java | Kotlin |
|---|---|---|
| 空安全 | 无,全靠自觉 | 类型系统支持 |
| 数据类 | 要手写 / Lombok | data class 一行 |
| 扩展函数 | 无 | 原生支持 |
| 协程 | 无(CompletableFuture 凑合) | 语言级支持 |
| 类型推断 | 有限(var 是 Java 10+) | 全面 |
| 智能转换 | 要强转 | 自动 |
| 静态成员 | static 关键字 | 用 object / 伴生对象 |
| 检查异常 | 有(强制 try-catch) | 没有(不强制) |
| 字符串模板 | "a" + b | "a$b" 或 "a${b.c}" |
| 单例 | 手写 | object 一行 |
举个例子,Java 写法:
public class User {
private String name;
private int age;
public User(String name, int age) { this.name = name; this.age = age; }
public String getName() { return name; }
public int getAge() { return age; }
@Override
public boolean equals(Object o) { /* 十几行 */ }
@Override
public int hashCode() { /* 几行 */ }
@Override
public String toString() { return "User(name=" + name + ", age=" + age + ")"; }
}
Kotlin:
data class User(val name: String, val age: Int)
Kotlin 版本
本教程写作时 Kotlin 稳定版是 2.x 系列。Kotlin 2.0 引入了新的 K2 编译器,编译速度大幅提升。
Android Studio(Quail 2 代)默认带 Kotlin 插件和 Compose Compiler,你不用单独装 Kotlin。新建项目时 build.gradle.kts 里会自动配好版本:
plugins {
alias(libs.plugins.kotlin.android)
alias(libs.plugins.compose.compiler)
}
版本号在 gradle/libs.versions.toml 里统一管理,升版本改一处就行。
NoteCompose Compiler 从 Kotlin 2.0 起变成 Kotlin 编译器插件,不再单独发布版本。这解决了以前「Kotlin 版本和 Compose 版本要严格对应」的麻烦。
学 Kotlin 的路径
不必把 Kotlin 全学完才碰 Android。建议这样:
- 本部分(ch09-18):变量、控制流、函数、类、集合、空安全、Lambda、协程基础。学完能看懂大部分 Android 代码。
- 边写 Android 边补:遇到不懂的语法回头查,比干学语言记得牢。
- 进阶:Flow、协程进阶、委托、反射、多平台。用到再学。
官方学习资源:
- Kotlin 官网语言手册:https://kotlinlang.org/docs/reference/
- Android 官方 Kotlin 文档:https://developer.android.google.cn/kotlin
- JetBrains 的 Kotlin Koans(互动练习)。
小结
Kotlin 是 JetBrains 开发、Google 力推的 Android 官方语言,简洁、空安全、互操作、协程是核心优势。本教程基于 Kotlin 2.x。下一节从变量和数据类型开始正式学 Kotlin 语法。