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是首选。
- 去JetBrains官网下载IntelliJ IDEA(Community版免费,Ultimate版收费但功能更多)
- 安装时勾选「Kotlin」插件(其实新版IDEA默认就带了)
- 创建新项目,选择「Kotlin」→「JVM」
- 搞定
我曾经帮一个同事配置环境,他下载了旧版IDEA,结果Kotlin插件版本不匹配,折腾了半小时。所以我的建议是:一定要用最新稳定版。
1.3.2 安装Android Studio
做Android开发的话,直接用Android Studio就行。它内置了Kotlin支持。
- 下载Android Studio(官网直接下,推荐用稳定版)
- 安装时选择「Standard」配置,SDK、模拟器都会自动搞定
- 创建新项目,在「Language」选项里选择「Kotlin」
- 等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入门知识体系。你可以把它当作学习路线图。
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