蓉杠学习网

j***a语言编译产生,j***a语言编译后会产生什么

大家好,今天小编关注到一个比较意思的话题,就是关于java语言编译产生的问题,于是小编就整理了2个相关介绍Java语言编译产生的解答,让我们一起看看吧。

  1. java如何生成class文件,怎样用cmd运行java文件?
  2. Java源程序如何变成Java字节码?

j***a如何生成class文件,怎样用cmd运行j***a文件?

j***ac 程序 将j***a文件编译成class文件。 j***a 运行class文件。 设置j***a运行环境打开cmd,进入 需运行的j***a文件 的文件夹中。 输入j***ac **.j***a (j***ac+空格+文件名和j***a后缀)。此处将j***a文件编译成class文件。

编译成功后,输入j***a ** (j***a+空格+class文件的文件名)文件后缀可不输入。

java语言编译产生,java语言编译后会产生什么div>
图片来源网络,侵删)

J***a源程序如何变成J***a字节码?

j***a源程序是开发人员编写的后缀名为.j***a的文件,而j***a字节码文件是经过j***ac编译器编译之后计算机能认识的后缀名为.class的文件。

j***ac做了些什么

主要由4个模块组成

java语言编译产生,java语言编译后会产生什么
(图片来源网络,侵删)

词法剖析器:识别j***a中的if,else,for,while关键字及其语句的合法性,构成符合标准的Token流。

剖析器:对构成的Token流进行语法剖析,检查它们构成的组合是否符合j***a语法标准,构成抽象的语法树。

语义剖析器:将foreach,注解等杂乱的语法转换成最简单的语法,构成注解往后的语法树。

java语言编译产生,java语言编译后会产生什么
(图片来源网络,侵删)

字节码生成器:将注解往后的语法树翻译成字节码。

j***a源程序就是一般用j***a写的代码,后缀为.j***a。经过j***a的解释器转为j***a字节码,后缀为.class。

j***a是高级语言,同时也是跨平台的语言。所以运行时会在j***a虚拟机上,也称JVM。它介于操作系统和j***a解释器之间。它能够识别j***a解释器翻译后的字节码,然后JVM在不同平台上运行成为机器码,让计算执行程序。


1,前提是你安装的jdk的环境变量,这方面资料也很多。

2,方法还是很多的,常见的简单的方法就是

2.1打开windows命令,j***ac 源程序即可;

2.2如果你开了工具eclipse,idea等,源程序编译过后和字节码文件一般在classes文件中,找到就可以了。当然背后的机制还是把源程序放到虚拟机在一番加工处理后的结果,想要了解这些就要关注他们的处理逻辑,可以查下这方面的资料,还是很复杂的,这里就不唠叨了。

j***a源程序变成字节码文件,其实就是j***a源程序的一个编译过程,就好比你想做成一件事,你必须要有做成这件事的能力,在j***a源程序转化为字节码的时候,也必须要有这个能力的工具才能完成,对于我们这些学j***a的人来说,要跑一个代码,就必须要有个环境 style="font-weight: bold;">jvm(j***a虚拟机),其次,你还要配置环境变量,为什么要配置环境变量呢?这就是重点了,就是j***a源程序变成j***a字节码的重点,因为配置了环境变量,我们变异的时候才能去找到j***ac这个编译工具,j***a代码的编译都必须靠这个编译工具。

运行 j***ac 命令的过程,其实就是 j***ac 编译器解析 J***a 源代码,并生成字节码文件的过程。

说白了,其实就是使用 j***ac 编译器把 J***a 语言规范转化为字节码语言规范。j***ac 编译器的处理过程可以分为下面四个阶段

第一个阶段:词法、语法分析。在这个阶段,JVM 会对源代码的字符进行一次扫描,最终生成一个抽象的语法树。简单地说,在这个阶段 JVM 会搞懂我们的代码到底想要干嘛。就像我们分析一个句子一样,我们会对句子划分主谓宾,弄清楚这个句子要表达的意思一样。

第二个阶段:填充符号表。我们知道类之间是会互相引用的,但在编译阶段,我们无法确定其具体的地址,所以我们会使用一个符号来替代。在这个阶段做的就是类似的事情,即对抽象的类或[_a***_]进行符号填充。等到类加载阶段,JVM 会将符号替换成具体的内存地址。

第三个阶段:注解处理。我们知道 J***a 是支持注解的,因此在这个阶段会对注解进行分析,根据注解的作用将其还原成具体的指令集。

第四个阶段:分析与字节码生成。到了这个阶段,JVM 便会根据上面几个阶段分析出来的结果,进行字节码的生成,最终输出为 class 文件。

我们一般称 j***ac 编译器为前端编译器,因为其发生在整个编译的前期。

所以说通过j***ac编译器就可以将j***a源程序转化为字节码。

他的命令我也说一下,如果要单独编译一下这个源文件的话,直接在命令好执行

j***ac xxx.j***a 就可以,不过你要先进入到这个文件目录下面。好了,回答就到这里,还有你们***纳

到此,以上就是小编对于j***a语言编译产生的问题就介绍到这了,希望介绍关于j***a语言编译产生的2点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/34569.html

分享:
扫描分享到社交APP