java - Java到底是什么?

标签 java jvm terminology definition vm-implementation

这个问题乍一看可能很愚蠢,但也许根本不是。

  • Java 不是 Java 语言,大多数人都知道,因为您可以使用 lots of other langauges 编写 Java 程序。像 Scala 或 Groovy

  • Java 不是具体的 VM 实现,因为还有其他实现,不仅是 SUN、Microsoft 或 IBM 的。

  • Java 不是类框架,因为许多实现会随意添加或删除类。

  • 甚至不必使用通用的 VM 规范甚至 Java 字节码,参见 Dalvik VM

  • 也许这只是他们共享的一组原则,无论是什么。这绝对不是“一次编写,到处运行”,因为至少 Dalvik 和 Microsoft VM/J# 不是这种情况。

那么问题来了,Java到底是什么?有准确的定义吗?

编辑 很多人似乎认为 Java 仅表示编程语言。因此,具有java功能的手机必须是能够使用户使用仅由java语言创建的类文件组成的程序的手机。如果这是真的,那么 java 虚拟机/java 运行时环境/java 开发工具包将只为 java 制作,其他 jvm 语言将有自己对应的 xvm/xre/xdk。

最佳答案

实际上,Java Java 语言。 Groovy、Scala 编译成可以在 JVM 上运行的等效字节码,但它们不是 Java。

形式上,我会说 Java 是 JLS .

关于java - Java到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4166788/

相关文章:

language-agnostic - 单片内核和微内核有什么区别?

java - 设置表达式错误

java - Tomcat 8 连接已被放弃

java - 如何解析指针数组中的 "include"成员?

java - 哪些 JVM 优化导致了这些性能结果?

c - extern 变量的用途?

java - 为什么 gradlew build 命令不能仅编译和构建已更改的内容并使过程更快?

java - 如何使用特定选项运行 JVM?

Eclipse 不再找到已安装的 JRE

javascript - JavaScript 中闭包的实际用途是什么?