java编译过程产生什么不同 java语言的编译过程与一般编程语言的编译过程有何不同
其实java编译过程产生什么不同的问题并不复杂,但是又很多的朋友都不太了解java语言的编译过程与一般编程语言的编译过程有何不同,因此呢,今天小编就来为大家分享java编译过程产生什么不同的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
Java与C++程序在编译和运行上有什么区别
但却有着许多的不同,最大的不同,可以说是编译和运行了。
高级语言写出来的代码,最终都会变为机器码,计算机才能识别。
汇编与机器码最接近,C++与Java都会直接或间接编程汇编以后,再运行。
C++经编译器(Unix下CC命令,Windows下CL命令)把源码直接编译成计算机可以认识的机器码,如exe,dll等文件。
Java源文件都需要用javac命令将源码编译为class文件,但是这个class文件无法被计算机直接识别,但可以被JVM即Java虚拟机识别。
运行Java程序时,先启动一个虚拟机,虚拟机加载class文件,方可执行。
这样,同样的代码被编译为同样的class文件,也称作字节码,在不同的平台上,运行同样的字节码,这样,Java跨平台的特性就显示出来了!而C++则办不到。追问:大哥,你似乎抄袭了本人在百度上的回答,声明出处吧。回答:呵呵,当然这个问题我不会,但是看完百度你的回答明白了(还给你改了俩错别字^_^)。这个东西本来就是相互借鉴的我来问问也是学习来着。
java程序经编译后会产生什么
产生:byte code\x0d\x0a\x0d\x0aJava字节码是Java源文件编译产生的中间文件\x0d\x0ajava虚拟机是可运行java字节码的假想计算机 java的跨平台性也是相对与其他编程语言而言的\x0d\x0a先介绍一下c语言的编译过程吧先是C语言源程序也就是c的文件经过C编译程序编译后,生成windows可执行文件exe文件,然后在windows中执行。再介绍java的编译过程先是java源程序扩展名为java的文件,由java编译程序将java字节码文件,就是class文件然后在java虚拟机中执行。机器码是由CPU来执行的。Java编译后是字节码,电脑只能运行机器码。Java在运行的时候把字节码变成机器码。C/C++在编译的时候直接编译成机器码。
Java编译过程与c/c++编译过程有何不同
你对Java编译过程和编译原理,Java编译程序将java源程序编译成jvm可执行代码--java字节码,并且Java编译器却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将些符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,然后再通过查表来确定一个方法所在的地址,这样就有效地保证了java的可移植性和安全性。
Java编译原理
1、Java编译过程与c/c++编译过程不同
Java编译程序将java源程序编译成jvm可执行代码--java字节码.
c/c++编译过程:
当C编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行而生成的。因此在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。
Java编译过程:
Java编译器却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将些符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,然后再通过查表来确定一个方法所在的地址,这样就有效地保证了java的可移植性和安全性。
2、jvm工作原理
运行jvm字符码的工作是由解释器来完成的。解释执行过程分三步进行:代码的装入、代码的校验、和代码的执行。
装入代码的工作由“类装载器classloader”完成。类装载器负责装入运行一个程序需要的所有代码,这也包括程序代码中的类所继承的类和被调
用的类。当类装载器装入一个类时,该类被放在自己的名字空间中。除了通过符号引用自己名字空间以外的类,类之间没有其他办法可以影响其他类。在本台计算机的所有类都在同一地址空间中,而所有从外部引进的类,都有一个自己独立的名字空间。这使得本地类通过共享相同的名字空间获得较高的运行效率,同时又保证它们与从外部引进的类不会相互影响。
当装入了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。解释器为符号引用与特定的地址空间建立对应关系及查询表。通过在这一阶段确定代码的内布局,java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码的非法访问。
随后,被装入的代码由字节码校验器进行检查。校验器可以发现操作数栈益处、非法数据类型转化等多种错误。通过校验后,代码便开始执行了。
java字节码的执行有两种方式:
1)即时编译方式:解释器先将字节编译成机器码,然后再执行该机器码。
2)解释执行方式:解释器通过每次解释并执行一小段代码来完成java字节码程序的所有操作。本节关于Java编译的内容介绍到这里,请关注本节其他相关报道。
java语言的编译过程与一般编程语言的编译过程有何不同
Java代码编译和执行的整个过程包含了以下三个重要的机制:
Java源码编译机制
类加载机制
类执行机制
Java源码编译机制
Java源码编译由以下三个过程组成:
分析和输入到符号表
注解处理
语义分析和生成class文件
JVM的类加载是通过ClassLoader及其子类来完成的
JVM是基于栈的体系结构来执行class字节码的。线程创建后,都会产生程序计数器(PC)和栈(Stack),程序计数器存放下一条要执行的指令在方
法内的偏移量,栈中存放一个个栈帧,每个栈帧对应着每个方法的每次调用,而栈帧又是有局部变量区和操作数栈两部分组成,局部变量区用于存放方法中的局部变
量和参数,操作数栈中用于存放方法执行过程中产生的中间结果
关于java编译过程产生什么不同,java语言的编译过程与一般编程语言的编译过程有何不同的介绍到此结束,希望对大家有所帮助。