第一章 Kotlin语言基础

各位同学,欢迎来到《Kotlin Android 开发(Jetpack Compose)从入门到精通》的第一章。我是你们这门课的主讲人,一个在 Android 开发领域摸爬滚打了七八年的老工程师。今天,我们不急着敲代码,先聊聊 Kotlin 这门语言本身——它从哪来,为什么选它,以及怎么把它的家安在你的电脑上。

1.1 Kotlin发展史

Kotlin 的故事,得从 2011 年说起。那时候 JetBrains,就是做 IntelliJ IDEA 那家公司,觉得 Java 虽然好,但有些地方用着实在不够爽。于是他们搞了个新语言,取名 Kotlin——灵感来自圣彼得堡附近的一个小岛。嗯,这帮程序员起名字就是这么随性。

2016 年,Kotlin 1.0 正式发布。我记得当时圈子里反响不小,但真正引爆是在 2017 年——Google 宣布 Kotlin 成为 Android 官方支持语言。从那以后,Kotlin 就像开了挂,一路高歌猛进。到 2019 年,Google 甚至说「Android 开发越来越 Kotlin 优先」。说白了,现在写 Android 新项目,不用 Kotlin 反而有点奇怪了。

为什么会这样?因为 Kotlin 解决了 Java 很多让人头疼的问题。空指针异常、冗长的样板代码、函数式编程支持弱……这些痛点,Kotlin 都给出了优雅的答案。

1.2 为什么选择Kotlin

你可能会问:「Java 用了这么多年,也挺好的,为什么非要换 Kotlin?」

我个人的体会是这样的:Kotlin 让你写更少的代码,做更多的事。举个例子,在 Java 里定义一个简单的数据类,你得写 getter、setter、toString、equals、hashCode……一堆模板代码。在 Kotlin 里,一行搞定:

data class User(val name: String, val age: Int)

就这一行,上面说的那些方法全给你自动生成了。我在项目中遇到过好几次,从 Java 迁移到 Kotlin 后,代码量直接砍掉 30% 到 40%。

另外,Kotlin 的空安全机制是我最爱的特性之一。Java 里那个烦人的 NullPointerException,在 Kotlin 里被大幅削弱了。你想想看,运行时崩溃少了,用户满意度自然就上去了。

还有协程——Kotlin 的异步编程方案。比起 Java 的回调地狱,协程写起来就像同步代码一样直观。这个我们后面会专门讲,先留个悬念。

核心优势总结:

  • 简洁:代码量减少约 40%
  • 安全:编译时检查空指针
  • 互操作:与 Java 100% 兼容
  • 现代:支持函数式编程、协程等
  • 官方支持:Google 亲儿子,生态完善

1.3 Kotlin与Java的关系

很多人以为 Kotlin 和 Java 是竞争关系,其实不是。它们更像是搭档。Kotlin 编译出来的字节码和 Java 一样,都是跑在 JVM 上的。这意味着你可以在同一个项目里混用 Kotlin 和 Java 文件,互相调用毫无障碍。

我刚开始在公司推 Kotlin 的时候,就是先在几个新模块里用 Kotlin 写,老模块继续用 Java。慢慢过渡,完全没问题。Kotlin 可以调用 Java 的类库,Java 也能调用 Kotlin 的代码——当然,语法上会有点小差异,但功能上完全互通。

举个例子,你在 Kotlin 里可以这样调用 Java 的 ArrayList:

val list = ArrayList<String>()
list.add("Hello")
list.add("World")

反过来,Java 里调用 Kotlin 的 data class 也完全 OK。这种无缝互操作,让迁移成本降到了最低。

小提示:如果你在混合项目中遇到 Kotlin 调用 Java 方法时出现「平台类型」的警告,别慌。这是因为 Kotlin 无法确定 Java 的返回值是否可为空。手动加上 ? 或 !! 就能解决。

1.4 开发环境搭建

好,理论聊完了,咱们来点实际的。要写 Kotlin,你得先装好开发环境。我个人推荐用 IntelliJ IDEA 或者 Android Studio。如果你主要做 Android 开发,直接装 Android Studio 就行,它内置了 Kotlin 支持。

1.4.1 安装 IntelliJ IDEA

  1. 去 JetBrains 官网下载 IntelliJ IDEA Community 版(免费)或 Ultimate 版(付费,功能更多)。
  2. 安装时勾选「Create Desktop Shortcut」和「Add to PATH」。
  3. 启动后,在插件市场搜索「Kotlin」,确保已安装(通常默认就有)。

1.4.2 安装 Android Studio

  1. 从 developer.android.com 下载 Android Studio。
  2. 安装过程中会帮你配置 JDK、Android SDK 等。
  3. 创建新项目时,语言选择「Kotlin」即可。

注意:我曾经遇到过一个问题——Android Studio 版本太旧,导致 Kotlin 插件不兼容。建议你始终使用最新稳定版。另外,JDK 版本至少 11 以上,Kotlin 1.8 以上。

1.5 第一个Hello World程序

环境搭好了,我们来写第一个 Kotlin 程序。这个传统不能丢,对吧?

打开 IntelliJ IDEA,新建一个 Kotlin 项目。在 src 目录下创建一个文件,叫 Main.kt。然后输入:

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

点击运行,控制台就会输出 Hello, World!。就这么简单。

你可能会好奇,为什么没有 public static void main 那一大串?这就是 Kotlin 的简洁之处。fun 是函数的关键字,main 是入口函数名,println 是标准输出。没有啰嗦的修饰符,没有多余的括号。

如果你用的是 Android Studio,新建一个 Empty Activity 项目,语言选 Kotlin,它会自动生成类似这样的代码:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}

嗯,这里稍微复杂一点,涉及到了类和继承。别担心,后面我们会一步步拆解。现在你只需要知道:Kotlin 的语法比 Java 清爽得多,读起来像在读英文句子。

小技巧:在 IntelliJ IDEA 里,你可以用 psvm 缩写快速生成 main 函数——不过 Kotlin 里是 main,不是 psvm。我习惯直接手打,因为就几个字母。

本章知识体系

为了让你更直观地理解本章内容,我画了一张图。它展示了 Kotlin 的定位、优势以及我们搭建环境到运行第一个程序的完整路径。

第一章 知识体系总览 Kotlin 语言基础 发展史 为什么选择 Kotlin 与 Java 的关系 开发环境搭建 Hello World 程序 核心优势总结 从历史背景出发,理解 Kotlin 的定位与优势 搭建环境 → 运行第一个程序 → 为后续学习打下基础

这张图把本章的脉络理清楚了。我们从 Kotlin 的发展史入手,理解它为什么能成为 Android 开发的首选。然后对比 Java,看到 Kotlin 的现代特性。最后动手搭建环境,跑通第一个程序。每一步都是为后面的深入学习铺路。

好了,第一章就到这里。内容不多,但都是基础中的基础。下一章我们会正式进入 Kotlin 的语法世界——变量、函数、控制流,一个都不能少。到时候见。


公众号:蓝海资料掘金营,微信deep3321