【发布时间】:2019-04-25 07:25:51
【问题描述】:
是否基于 JVM 软件?如果是这样,JVM 是用哪种语言编码的?
【问题讨论】:
-
@bignose:感谢您的指正,希望现在可以了
是否基于 JVM 软件?如果是这样,JVM 是用哪种语言编码的?
【问题讨论】:
几乎所有的 JVM 都是用软件实现的。但是,JVM 是任何以符合JVM specification 的方式解释Java bytecode 的东西,还有一些hardware-based JVMs。
【讨论】:
Java 虚拟机是一个formal specification,通过将字节码解释为虚拟机操作集中的指令来说明虚拟机需要如何表现。
如果有某种机制可以解释字节码并以正确的方式运行,那么它就是一个 JVM,不管它是如何实现的。
这意味着JVM 可以在程序中实现,或者同样可以在硬件中实现。如果你想知道是哪种情况,你需要谈论some specific implementation。
【讨论】:
有点……它更像是一个标准,它产生了许多软件。你不能 100% 确定 JVM 是用什么语言编写的,但在大多数情况下,我敢打赌它是用 C/C++ 编写的。
【讨论】:
为了回答我认为是您的问题,JVM 是用 C++ 编写的。然而,大多数 Java 库都是用 Java 编写的。
同样适用于 .NET:代码 CLR/VM 是用 C++ 编写的,但类库是用 C# 编写的。
【讨论】:
JVM 代表“Java 虚拟机”。它是一个虚拟化环境,可为 Java 应用程序提供一种在多个不同物理环境中以相同方式运行的方式。
这个想法是 Java 代码由 JVM 编译和执行。 JVM 为实际代码提供了相同的外观和感觉,无论它是在大规模并行大型机上运行还是在运行 Windows XP 的单处理器 PC 上运行。
如今,JVM 被用于 Java 以外的语言(例如 Scala)。
【讨论】:
JVM is a specification that provides runtime environment in which java bytecode can be executed.
Jvm 将您的字节码解释为机器可理解的代码。
JVM执行以下操作:
- Loads code
- Verifies code
- Executes code
- Provides runtime environment
为此,必须编写代码,
所以规范的实现在这里完成(主要是 sun 提供)。
这个实现是 JRE。
JVM 还告诉必须如何发生以下事情:
- Memory area
- Class file format
- Register set
- Garbage-collected heap
- Fatal error reporting etc.
所以这一切都是软件,在这里找到工作细节JVM Details
【讨论】:
Java 虚拟机是一个旨在执行其他程序的程序。
JVM 有两个主要功能:允许 Java 程序在任何设备或操作系统上运行(称为“一次编写,随处运行”原则),以及管理和优化程序内存。 1995 年 Java 发布时,所有计算机程序都写入特定的操作系统,程序内存由软件开发人员管理。
JVM 是一种软件规范。 JVM 规范以某种循环的方式强调其实现细节并未在规范中定义,以便在其实现中发挥最大的创造力。
因此,JVM 所要做的就是正确运行 Java 程序。听起来很简单,甚至从外面看起来也很简单,但这是一项艰巨的任务,尤其是考虑到 Java 语言的强大功能和灵活性。
查看文章至learn more about JVM。
【讨论】: