2024-06-10 19:23:30 | 我爱编程网
简单来说Java程序的运行机制
编写 、编译 、运行 三个步骤。
运行机制 主要是指
编译 、运行的过程
1、编译
Java编译器对
源文件
进行错误排查的过程,编译后将生成
后缀名
为.class的字节码文件。好让JVM(java虚拟机)里的
解释器
可以正常读取。
2、运行
三步 代码的装入、代码的校验和代码的执行
2.1 、 代码的装入
JVM控制解释器中的“类装载器”去读取和装载程序所需的类(class的字节码)。然后解释器开始建立类与类之间的关系。
2.2、 代码的校验
字节码校验器进行检查:校验器可发现操作数栈溢出,非法
数据类型
转化等多种错误。
2.3、 代码的执行
执行也分两种情况
即时编译方式:解释器先将字节码编译成
机器码
,然后再执行该机器码。
解释执行方式:解释器通过每次解释并执行一小段代码来完成Java字节码程 序的所有操作。
通常采用的是第二种方法。由于JVM规格描述具有足够的灵活性,这使得将字节码翻译为机器代码的工作
本回答由
电脑网络
分类达人 化晓峰 推荐
它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。既然Java语言是解释型的,那它就是边解释边执行咯 补充: 不过,虽然java是解释型的语言,但是在不同的平台环境上的java虚拟机也是会有一次性解释然后执行的情况的!!! 追问: java程序在一个平台上被解释成了二进制目标代码,退出java程序后,再运行java程序时,还需要再次解释吗?如果需要再次解释,就显得浪费资源;不再次解释,程序就不能“一次编写,到处运行”。 回答: 就hotspot虚拟机而言,有两种模式,一是-client,二是-server
-client模式下,是逐条解释执行的
-server模式下,先解释执行,然后jvm统计执行热点,将这些热点代码仔细优化编译成本地代码,然后执行本地代码,当这个热点不再是热点的时候,释放编译的代码,重新解释执行
其它的jvm可能在一启动的时候就全部编译成本地代码我爱编程网
总之,JVM会自行优化!
jdk是开发包,里面包含了编译器和jre也就是虚拟机(这里的jre还有很多其他的功能,比如调试之类的),主要是开发时使用
jre的虚拟机,一般是发布的时候用。
java是跨平台的,但是jre不是跨平台的,也就是说windows下需要安装windows版本的jre,Linux下需要Linux下的jre
我个人认为你说的java虚拟机和解释器是一个东东
至于程序的最终运行,所有语言最终都是解释成机器码的,不管是c的还是java的,c编译出来的东东里面直接就是机器指令,而java的class文件则需要jre先解释成机器指令,然后才调用硬件(cpu)执行的
JAVA程序详细解释这是一个,求解问题。从字符串s中,求出其中包含有多少个sToFind。按照上面的例子,就是在sunjavahpjavahjsdhjjavadsjhjjavadsjjava中,计算含有多少个java子串。count负责记录一共有多少个子串。index负责记录每一次寻找开始时,字符串开始的位置。循环外面的s=s.substring(index+sT
程序先后运行顺序是什么?求详细解释Javajava在编译class时,会自动生成一个init方法和clinit方法。clinit方法在第一次加载该类时调用,而且只调用一次。init在创造这个class的实例时调用,实例化一次调用一次。clinit方法中其实就是初始化一些静态变量,执行static块等,初始化和执行的顺序完全按照你代码顺序来,也就是先初始化x为0,然后+7,在模4,最后x=
JAVA选择题,解释一下每个选项的对错原因。运行结果题解释一下运行的过程方法。最好详细点,不多的2(1)内部类不能放置static变量,故选C(2)解析:A选项:和接口有关的匿名类不能是abstractclass,因为其不能实例化;B选项:有且仅有实现一个interfaceD选项:static变量属于类3(1)类似一个覆盖override,当然会实现new对象里的method
关于JAVA程序的注释和运行结果1、单行(single-line)--短注释://……单独行注释:在代码中单起一行注释,注释前最好有一行空行,并与其后的代码具有一样的缩进层级。如果单行无法完成,则应采用块注释。注释格式:/*注释内容*/行头注释:在代码行的开头进行注释。主要为了使该行代码失去意义。注释格式://注释内容行尾注释:尾端(trailing)--
怎样使用linux运行java程序?使用linux运行java程序具体步骤如下:1.Windows上使用eclipse编译java工程,编译完成后导出为RunnableJARFile。例如,此处将test工程中的Test2文件export为MyTest2.jar文件。2.Ubuntu上java环境安装。①jdk官网-downloads-2133151.html下载L
java程序的怎么运行,源程序已经写好并保存,如何使用命令提示符解释点击电脑左下角的开始,在点击运行,出入cmd··回车,命令提示符出现后,输入cd\回车··换行,然后输入javac(你的文件名).java回车··进行编译,编译成功后输入java(你的文件名)回车··运行程序!怎么在电脑上运行Java源程序代码首先你要在你的电脑上安装jdk。你可以在后面链
在DOC环境下如何运行Java程序比如说保存为"D:\java\test.java",然后转换目录到那里"cdD:\java",编译这个.java文件"javactest.java"这个javac的命令一定要记住,这是jdk里面最为常用的之一,是个java的编译器,具体参数你自己研究吧,很多,配合使用会得到意想不到的结果。这时候应该在"D:\java\"目录下面生成了一个test.class
求个简单点的Java程序100行左右。需要解释。贪吃蛇游戏望采纳importjava.awt.Button;importjava.awt.Color;importjava.awt.GridLayout;importjava.awt.Point;importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener
2024-04-13 00:38:12
2024-03-31 15:14:06
2024-03-21 00:22:13
2024-02-10 22:15:59
2023-12-26 22:10:45
2023-10-06 13:00:52