Kotlin JVM 和 Kotlin Native 有什么区别?

What's the difference between Kotlin JVM and Kotlin Native?

所以我知道 Kotlin Native 显然是 Native 而 Kotlin JVM 不是,而是 Kotlin JVM 和 Kotlin Native 之间的代码: 1.不同的编译器和不同的代码 2.不同的编译器和相似的代码 3.不同的编译器和相同的代码 4. 以上None(请说明)

Kotlin/JVM和Kotlin/Native编译器共享front-end(执行代码解析、名称解析、类型推断等的部分),但编译器back-ends将内部程序表示转换为目标代码(分别是 JVM 字节码和 LLVM 位码)的方法不同。

两个编译器接受的Kotlin语言是一样的,但是一些特性和检查是platform-specific。此外,Kotlin/JVM 和 Kotlin/Native 的标准库完全不同,请在此处查看每个平台上可用的 API:Kotlin Standard Library.

另一个很大的区别是内存模型:Kotlin/JVM 使用 Java 内存模型,而 Kotlin/Native 提供 its own concurrency and memory model

另外,在Kotlin/JVM和Kotlin/Native项目中可以使用的依赖是不同的。除了使用相同的 Kotlin 目标构建的项目:

  • Kotlin/JVM 也可以使用为 JVM 构建的任何库(用 Java、Scala 等编写)

  • Kotlin/Native 还可以使用 C interop tools.

    与用 C(或至少有 C headers)编写的本机库进行互操作
  • Kotlin/JVM 和 Kotlin/Native 都可以使用 Kotlin Multiplatform 库。鉴于依赖项是一个多平台库,因此可以完全重用 Kotlin/JVM 和 Kotlin/Native 之间使用它的代码。