gpt4 book ai didi

java - java程序如何与编译器交互?

转载 作者:行者123 更新时间:2023-12-01 16:42:30 24 4
gpt4 key购买 nike

我试图了解java程序如何与编译器交互。

让我们假设,我们在平面文本文件上编写简单的 java 语言。在核心级别,它以位模式存储在磁盘上。

Java 的编译器是独立的标识,只是某种位模式。

这个模式可以消耗它理解的东西。使用 Java 位模式(即所谓的 Java 程序)并生成要由处理器处理的指令。

这个过程发生在哪里,在内存中还是处理器中? java编译器吃掉java并生成处理器可以理解的指令的过程。

我的理解是,内存只是用于加载我们可以在屏幕上看到的来自磁盘或处理器的内容。 Java 程序和编译器代码都存在于屏幕上,应该加载到内存中才能进一步运行。

那么处理器指令的创建方式和顺序是怎样的?他们在哪里互动以及如何互动?

谁能帮我理解这一点吗?非常想知道。任何书籍或引用书都可以。

最佳答案

它与任何编译器系统几乎相同。编译器从文件(在本例中为 .java)读取源文本,并将等效指令写入另一个文件(在本例中为 .class)。

编译器的执行过程就像任何计算机程序的执行一样:处理器执行来自内存的指令,并且这些指令读取和写入内存。将其称为“在内存中”或“在处理器中”似乎并不合适 - 它作为一个整体“在计算机中”。

<小时/>

更多细节:

编译器在运行时是加载到内存中并由处理器执行的指令。编译器将执行指令将 .java 文件从磁盘读取到内存中,以便编译器可以翻译 Java 代码。编译器将执行指令将编译后的代码写入磁盘(作为 .class 文件)。

编译器和Java程序没有同时运行。编译器在 Java 程序(“应用程序”)运行之前完全翻译该程序。首先将.java编译为.class文件;然后执行.class文件。

应用程序在运行时是加载到内存中并由处理器执行的指令。 (这是对这个解释的简化,避免了一个叫做 JVM 的东西的存在。它并没有实质性地改变整体的想法)。

这与其说是关于 Java,不如说是关于计算机的一般工作方式。数据必须可供处理器访问,这意味着数据需要位于内存中。处理器的指令,即正在执行的程序,不能以任何其他方式操纵数据(近似;有一些异常(exception)情况不适用于我们此处要进行的解释级别)

关于java - java程序如何与编译器交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61836502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com