与 Java 的对比
Kotlin 中解决的一些 Java 问题
Kotlin 解决了 Java 存在的一系列问题:
- 空引用由类型系统控制。
- 无原始类型
- Kotlin 中的数组是不型变的。
- Kotlin 拥有恰当的函数类型,而非 Java 的 SAM 转换。
- 使用处型变而无需通配符
- Kotlin 没有受检异常。
- 只读集合和可变集合的独立接口
Java 有而 Kotlin 没有的特性
- 受检异常
- 不是类的基本类型。字节码尽可能使用基本类型,但它们不显式可用。
- 静态成员被 companion objects、顶层函数、扩展函数或 @JvmStatic 取代。
- 通配符类型被声明处型变和类型投影取代。
- 三元操作符
a ? b : c
被 if 表达式取代。 - Records
- Pattern Matching
- 包私有可见性修饰符
Kotlin 有而 Java 没有的特性
- lambda 表达式 + 内联函数 = 高性能的自定义控制结构
- 扩展函数
- 空安全
- 智能类型转换(Java 16:Pattern Matching for instanceof)
- 字符串模板(Java 21:String Templates (Preview))
- 属性
- 主构造函数
- 头等委托
- 变量和属性的类型推断(Java 10:Local-Variable Type Inference)
- 单例
- 声明处型变与类型投影
- 区间表达式
- 操作符重载
- Companion objects
- 数据类
- 协程
- 顶层函数
- 带默认值的形参
- 具名形参
- 中缀函数
- 预期与实际声明
- 显式 API 模式和更好地控制 API 面
接下来?
了解如何:
- 在 Java 和 Kotlin 中执行典型的字符串任务。
- 在 Java 和 Kotlin 中执行典型的集合任务。
- 处理 Java 和 Kotlin 中的可空性。