1. Kotlin入门:发展史、与Java对比、开发环境搭建

大家好,我是你们的老朋友。今天咱们正式开启《Kotlin项目实战100例》的第一章。

说实话,每次带新人入门Kotlin,我都会先问一个问题:「你为什么要学Kotlin?」

有人说是Google官方推荐,有人说因为协程好用,还有人说是公司项目转型。但不管什么原因,Kotlin这门语言,确实值得你花时间好好了解。

1.1 Kotlin发展史:从JetBrains的「小项目」到Android官方语言

Kotlin诞生于2011年。那时候JetBrains(就是做IntelliJ IDEA那家公司)内部有个小团队,觉得Java写起来太啰嗦了。他们想搞一套更现代、更简洁的JVM语言。

嗯,说白了就是「自己写工具写烦了,干脆造个新语言」。我特别喜欢这种务实的态度。

  • 2011年:JetBrains公开Kotlin项目,代号取自圣彼得堡附近的Kotlin岛
  • 2016年:Kotlin 1.0正式发布,我第一时间就试了试——说实话,当时还觉得它活不过两年
  • 2017年:Google在I/O大会上宣布Kotlin成为Android官方开发语言。那天我朋友圈都被刷屏了
  • 2019年:Kotlin成为Android开发首选语言,Google官方文档示例全面转向Kotlin
  • 2023年:Kotlin 1.9发布,K2编译器稳定,性能大幅提升

核心观点:Kotlin不是要取代Java,而是给Java开发者一个更好的选择。它100%兼容Java,你可以逐步迁移。

我在2017年接手过一个老项目,全是Java写的。当时团队决定用Kotlin重写部分模块。你猜怎么着?我们只用了3个月就把核心模块全部迁移完了,而且代码量减少了将近40%。

1.2 Kotlin与Java对比:到底强在哪?

很多人问我:「Kotlin和Java比,到底好在哪里?」

我一般会反问:「你写Java的时候,最烦什么?」

空指针?样板代码?没有协程?——这些恰恰是Kotlin的强项。

对比维度 Java Kotlin
空安全 需要手动判空,容易NPE 类型系统内置空安全,编译期检查
代码简洁度 样板代码多(getter/setter等) 数据类一行搞定,属性默认getter/setter
函数式编程 Lambda支持有限,Stream API较晚 原生支持高阶函数、Lambda、扩展函数
协程 需要第三方库(RxJava等) 内置协程,轻量级并发
扩展函数 不支持 可以为任何类添加新方法
类型推断 Java 10+才引入局部变量推断 从一开始就支持

举个例子,Java里写一个简单的数据类:

// 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 void setName(String name) { this.name = name; }
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
}

换成Kotlin呢?

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

就一行。你想想看,如果项目里有几十个这样的类,能省多少时间?

我的建议:刚开始学Kotlin,别急着用协程、DSL这些高级特性。先把空安全、数据类、扩展函数这几个基础吃透,你就能感受到Kotlin的爽了。

1.3 Kotlin开发环境搭建:IntelliJ IDEA + Android Studio

环境搭建这块,我踩过不少坑。尤其是早期版本,插件兼容性问题让人头疼。现在好多了,基本上一键搞定。

1.3.1 安装IntelliJ IDEA

如果你主要做后端开发,或者想写纯Kotlin项目,IntelliJ IDEA是首选。

  1. 去JetBrains官网下载IntelliJ IDEA(Community版免费,Ultimate版收费但功能更多)
  2. 安装时勾选「Kotlin」插件(其实新版IDEA默认就带了)
  3. 创建新项目,选择「Kotlin」→「JVM」
  4. 搞定

我曾经帮一个同事配置环境,他下载了旧版IDEA,结果Kotlin插件版本不匹配,折腾了半小时。所以我的建议是:一定要用最新稳定版

1.3.2 安装Android Studio

做Android开发的话,直接用Android Studio就行。它内置了Kotlin支持。

  1. 下载Android Studio(官网直接下,推荐用稳定版)
  2. 安装时选择「Standard」配置,SDK、模拟器都会自动搞定
  3. 创建新项目,在「Language」选项里选择「Kotlin」
  4. 等Gradle同步完成,就可以开始写了

注意:Android Studio的Kotlin版本和Gradle插件版本有对应关系。如果你遇到编译报错,先检查一下版本是否匹配。我曾经因为升级了Kotlin版本没同步升级Gradle插件,排查了整整一下午。

1.3.3 第一个Kotlin程序

环境搭好了,咱们写个Hello World试试手。

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

就这么简单。没有public static void main,没有类包裹。直接写函数就行。

你可能会问:「为什么Kotlin可以直接写顶层函数?」

嗯,这是因为Kotlin编译时会自动生成一个类来包装这些函数。你写起来爽,底层Java虚拟机照样能跑。

1.4 知识体系总览

下面这张图,是我自己整理的Kotlin入门知识体系。你可以把它当作学习路线图。

Kotlin入门 发展史 2011年诞生 2016年1.0发布 2017年官方支持 2023年K2编译器 与Java对比 空安全 代码简洁度 函数式编程 协程支持 环境搭建 IntelliJ IDEA Android Studio Gradle配置 Hello World 核心:理解Kotlin的设计哲学,掌握基础语法

1.5 避坑指南

最后,分享几个我亲身踩过的坑,希望能帮你少走弯路。

我曾经在项目里混用Java和Kotlin,结果因为Kotlin的nullability注解没加对,导致运行时NPE。后来养成了一个习惯:所有跨语言调用的地方,都显式标注@Nullable或@NonNull。

小技巧:IntelliJ IDEA里按Ctrl+Shift+A(Mac是Cmd+Shift+A),输入「Convert Java File to Kotlin File」,可以直接把Java代码转成Kotlin。虽然转换结果不一定完美,但作为学习参考很有用。

好了,第一章就到这里。Kotlin的世界很大,咱们慢慢探索。


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