我想知道在执行Kotlin
程序时发生的一步一步的内部过程。我知道java
的程序执行,但想知道Kotlin
除此之外做什么?
还有没有别的
Kotlin/JVM被编译成Java字节码,它由JVM以与从Java或Clojure或Scala或Groovy或任何其他JVM语言编译的代码完全相同的方式运行。JVM不知道每个类是从什么语言编译的;它只是启动,加载你的主类,并执行它,根据需要加载其他类。
需要注意的一点是,Kotlin有自己的(小的)标准库。这也是Java字节码,除了编译后的代码和普通的Java标准库之外,JVM还必须可用:
- 如果你使用
kotlin
程序启动你的应用程序,在将控制权交给JVM之前,将Kotlin运行时添加到类路径。 - 如果你把你的代码打包到一个
.jar
文件中,Kotlin运行时库通常会包含在这个文件中。否则,您需要告诉JVM在哪里可以找到它(通过将它添加到类路径中)。
(当然,所有这些只适用于Kotlin/JVM;Kotlin/JS和Kotlin/Native的编译和运行方式完全不同)