前置知识: Java

Kotlin 概述与环境配置

8 minBeginner2026/6/14

Kotlin 语言概述、发展历史、与 Java 的关系、多平台支持与环境搭建。

1. Kotlin 概述

Kotlin 是由 JetBrains 公司于 2011 年发布的一种静态型编程语言,2012 年开源,2016 年发布 1.0 正式版。2017 年 Google 宣布 Kotlin 成为 Android 官方开发语言,2019 年进一步宣布 Kotlin 为 Android 开发的首选语言。Kotlin 的设计目标是成为一种实用、简洁、安全的语言,同时与 Java 保持完全互操作。

1.1 发展历程

时间事件版本
2011JetBrains 公布 Kotlin 项目-
2012Kotlin 开源0.1
2016Kotlin 1.0 正式发布1.0
2017Google 宣布 Kotlin 为 Android 官方语言1.1
2018Kotlin 协程稳定版发布1.3
2019Google 宣布 Kotlin 为 Android 首选语言1.3
2021Kotlin 1.5 发布,新增 JVM IR 编译器后端1.5
2022Kotlin 1.7 发布,K2 编译器预览1.7
2023Kotlin 2.0 发布,K2 编译器正式稳定2.0
2024Kotlin 2.1 发布,KMP 稳定2.1
2025Kotlin 2.2 发布,Compose Multiplatform 持续增强2.2

1.2 核心特点

特点描述优势
简洁性大幅减少样板代码,数据、属性委托特性极大简化代码开发效率高,代码可读性强
安全性空安全型系统从编译期消除空指针异常减少 NPE 运行时崩溃
互操作性与 Java 100% 互操作,可自由混用 Java 和 Kotlin 代码渐进式迁移,保护已有投资
工具友好由 JetBrains 设计,与 IntelliJ IDEA 深度集成优秀的 IDE 支持和开发体验
多平台支持 JVM、JavaScript、Native 多个编译目标一套代码多端运行
协程内置协程支持,提供结构化并发模型简化异步编程,避免回调地狱
函数式支持高阶函数、Lambda、扩展函数等函数式特性代码更灵活、表达力更强

1.3 Kotlin 与 Java 的关系

Kotlin 运行在 JVM 之上,与 Java 完全互操作,但并非 Java 的简单语法糖:

方面JavaKotlin
空安全无内建空安全,依赖注解型系统内建空安全(? 标记)
数据需手写 getter/setter/equals/hashCodedata class 一行搞定
扩展函数不支持支持为已有添加方法
协程无内建支持(Project Loom 在进行中)内建协程支持
LambdaJava 8+ 支持,但与 SAM 型交互繁琐Lambda 与函数型无缝集成
智能转换不支持自动智能型转换
默认参数不支持支持,减少方法重载
密封Java 17+ 支持 sealed早已支持,且与 when 配合更好
// 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() { /* ... */ }
}

// Kotlin — 一行等价
data class User(val name: String, val age: Int)

2. 多平台支持

Kotlin 不仅仅是 JVM 语言,它支持多个编译目标:

2.1 Kotlin/JVM

最成熟的目标平台,编译为 JVM 字节码,与 Java 完全互操作。适用于:

  • 服务端开发(Spring Boot、Ktor)
  • Android 应用开发
  • 桌面应用(TornadoFX)

2.2 Kotlin/JS

将 Kotlin 代码编译为 JavaScript,支持:

  • 前端 Web 开发
  • Node.js 服务端
  • 与现有 JavaScript 库互操作
// Kotlin/JS 示例
fun main() {
    val element = document.createElement("div")
    element.textContent = "Hello from Kotlin/JS!"
    document.body!!.appendChild(element)
}

2.3 Kotlin/Native

将 Kotlin 编译为原生二进制文件,无需虚拟机:

  • iOS 应用开发
  • 嵌入式系统
  • 对启动时间敏感的应用

2.4 Kotlin Multiplatform (KMP)

KMP 是 Kotlin 多平台的核心策略,允许在平台间共享代码:

shared/
├── commonMain/       # 所有平台共享的代码
├── jvmMain/          # JVM 特定代码
├── jsMain/           # JS 特定代码
├── nativeMain/       # Native 特定代码
└── appleMain/        # Apple 平台共享代码

3. 环境搭建

3.1 IntelliJ IDEA(推荐)

IntelliJ IDEA 是 Kotlin 开发的最佳 IDE,由 JetBrains 出品,内建完整的 Kotlin 支持:

  1. 下载 IntelliJ IDEA(Community 版免费)
  2. 安装后,Kotlin 插件已内置,无需额外配置
  3. 创建新项目:File → New → Project → 选择 Kotlin

3.2 Android Studio

Android Studio 基于 IntelliJ IDEA,同样内置 Kotlin 支持:

  1. 下载 Android Studio
  2. 创建新项目时选择 Kotlin 作为开发语言
  3. 现有项目可通过 Tools → Kotlin → Configure Kotlin in Project 迁移

3.3 命令行(SDKMAN)

使用 SDKMAN 安装 Kotlin SDK:

# Install SDKMAN
curl -s "https://get.sdkman.io" | bash

# Install Kotlin
sdk install kotlin

# Verify installation
kotlinc -version
# Kotlin version 2.2.0 ...

编译和运行 Kotlin 程序:

# Compile
kotlinc Hello.kt -include-runtime -d Hello.jar

# Run
java -jar Hello.jar

# Or use Kotlin directly
kotlinc Hello.kt -script

3.4 Gradle 构建配置

Kotlin 项目通常使用 Gradle 构建,以下是基础配置:

// build.gradle.kts
plugins {
    kotlin("jvm") version "2.2.0"
    application
}

group = "com.example"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
}

dependencies {
    testImplementation(kotlin("test"))
}

application {
    mainClass.set("com.example.MainKt")
}

kotlin {
    jvmToolchain(17)
}

3.5 在线 Playground

无需安装任何环境,直接在浏览器中体验 Kotlin:

4. Hello World

4.1 基础 Hello World

fun main() {
    println("Hello, Kotlin!")
}

4.2 带命令行参数

fun main(args: Array<String>) {
    if (args.isNotEmpty()) {
        println("Hello, ${args[0]}!")
    } else {
        println("Hello, World!")
    }
}

4.3 脚本模式

Kotlin 支持脚本文件(.kts):

// hello.kts
println("Hello from Kotlin script!")
val numbers = listOf(1, 2, 3, 4, 5)
println("Sum: ${numbers.sum()}")

运行:kotlinc -script hello.kts

5. Kotlin 2.x 新特性

5.1 K2 编译器

Kotlin 2.0 引入了全新的 K2 编译器前端,带来显著改进:

  • 编译速度:相比 1.x 提升约 2 倍
  • 统一架构:所有目标平台共享前端
  • 更好的 IDE 体验:代码高亮和补全更快

5.2 Kotlin 2.1+ 新特性

// Guard conditions in when (2.1)
when (value) {
    is String -> when {
        value.length > 5 -> println("Long string")
        else -> println("Short string")
    }
}

// Improved smart casting
fun process(input: Any) {
    if (input is String && input.length > 0) {
        // input is smart-cast to String here
        println(input.uppercase())
    }
}

6. 学习路线建议

Kotlin 基础语法 → 函数与 Lambda → 类与对象 → 泛型与类型系统
     ↓                                              ↓
集合与协程 → 协程进阶 → Kotlin 多平台 → DSL 设计 → 测试与最佳实践
阶段内容预计时间
入门基础语法、函数、1-2 周
进阶泛型协程、集合操作2-3 周
高级KMP、DSL、性能优化3-4 周
实战项目开发、架构设计持续

提示:有 Java 基础的开发者可以重点关注 Kotlin 与 Java 的差异部分,如空安全、扩展函数、协程等,通常 1-2 周即可上手。