jvm - 为什么可以为 JVM 构建自定义语言,例如 Groovy、Scala、Clojure、Kotlin?

标签 jvm jvm-languages

这些语言与 Java 有很大不同,例如 OO 系统、类型系统(最值得注意的)。

真正的问题是 JVM 是否在幕后跟踪对象? JVM 内部是否存在对象?此类语言的创建者是否有责任与 Java 世界进行互操作,或者“默认”实现?

最佳答案

The actual question is whether JVM keeps track of objects under the hood?

是的,确实如此。垃圾收集是 JVM 的职责。

Is there an object inside JVM?

是的,有字节码来创建类实例。另外,实例方法的动态调度是由 JVM 完成的。

Is it responsibility of creators of such languages that they may interoperate with Java world, or it is achieved "by default"?

这是容易实现的目标,不这样做就是愚蠢的。此外,并非所有 JVM 语言都会重新发明轮子,只在适当的时候使用 JRE 类。这很可能包括 String、原始类型及其装箱形式和数组。

关于jvm - 为什么可以为 JVM 构建自定义语言,例如 Groovy、Scala、Clojure、Kotlin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45752268/

相关文章:

java - JMX 结果令人困惑

使用 Scala : Equivalent to "getElementByTagName(name)" in JS 解析 XML

performance - Kotlin:避免创建FqNameUnsafe和FqName

java - 如何在不同的JVM中创建EJB和客户端(纯java程序)

java - Blockhound Gradle : 'You need to add ' -XX:+AllowRedefinitionToAddDeleteMethods' JVM flag.'

java - Windows cmd 中的 JVM http 代理

java - 运行在两个不同 JVM 上的两个应用程序如何交互?

compiler-construction - 如何创建 JVM 编程语言?

python - 什么时候在 .py 文件上运行 Jython 会生成 .class 文件?

javascript - SWIG 和 Javascript : does embedding the JVM/Rhino into my C++ app is still the only solution?