繁体   English   中英

Java 中的“运行时”是什么意思?

[英]What does "runtime" mean in Java?

JVM 实现是将字节码转换为机器码的解释器。 但与此同时,JVM 实现会引发运行时错误。 这是否意味着解释器检查 Java 中的运行时错误? 或者这是否意味着Java的运行时发生在从字节码到机器码的阶段?

这意味着在应用程序的运行期间(当应用程序实际运行时)抛出了一些异常,例如尝试除以 0,这恰好是用户输入。

经过研究,我发现经典编译器将源代码转换为机器码,供计算机执行,而经典解释器直接执行源代码。

在 C 中,编译器将其源代码几乎转换为机器代码(object 文件)。 当我们“运行”一个 C 程序时,这意味着机器执行 object 文件。 所以机器会抛出运行时错误。

而在 Java 中,编译器将其源代码转换为字节码,即源代码和机器代码之间的中间代码。 编译后,一个非经典的解释器(字节码解释器)直接执行这个字节码。 所以运行时错误是由这种解释器抛出的,它在 Java 中称为“虚拟机”,因为它的行为类似于 C 中执行程序的机器。

回到我问的问题,Java 中的解释器 (JVM) 会引发运行时错误,因为它就像机器本身一样,而不是在实际执行之前充当中间阶段。

这是一个资源,它解释了 Java 中的错误类型,包括运行时错误。 如果您愿意,@Antoniossss 有一个简短的解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM