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会自行优化!
我爱编程网(https://www.52biancheng.com)小编还为大家带来java解释器 java运行环境的相关内容。
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程序的注释和运行结果1、单行(single-line)--短注释://……单独行注释:在代码中单起一行注释,注释前最好有一行空行,并与其后的代码具有一样的缩进层级。如果单行无法完成,则应采用块注释。注释格式:/*注释内容*/行头注释:在代码行的开头进行注释。主要为了使该行代码失去意义。注释格式://注释内容行尾注释:尾端(trailing)--
在DOC环境下如何运行Java程序比如说保存为"D:\java\test.java",然后转换目录到那里"cdD:\java",编译这个.java文件"javactest.java"这个javac的命令一定要记住,这是jdk里面最为常用的之一,是个java的编译器,具体参数你自己研究吧,很多,配合使用会得到意想不到的结果。这时候应该在"D:\java\"目录下面生成了一个test.class
怎样创建和调试java程序首先配置java的JDK运行环境的环境变量:我的电脑点右键,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量:(1)设置好path变量,使得我们能够在系统中的任何地方运行java应用程序,比如javac、java、javah等等这就要找到我们安装JDK的目录,比如我们的JDK安装在C:\jdk1.6.0目录下那么在C:\jdk1.
怎样使用linux运行java程序?使用linux运行java程序具体步骤如下:1.Windows上使用eclipse编译java工程,编译完成后导出为RunnableJARFile。例如,此处将test工程中的Test2文件export为MyTest2.jar文件。2.Ubuntu上java环境安装。①jdk官网-downloads-2133151.html下载L
java习题运行结果--、++运算不会立即改变变量值,所以x--==2是true,y++==2也为true;所以x--==2&&y++==2为true;此后x变为1,y变为3;if条件语句的或“||”,a||b,若a=true,则无需判断b,所以z++==2其实是没有执行的,所以z=2;最后一行System.out.println("x="+x+",
JAVA选择题,解释一下每个选项的对错原因。运行结果题解释一下运行的过程方法。最好详细点,不多的2(1)内部类不能放置static变量,故选C(2)解析:A选项:和接口有关的匿名类不能是abstractclass,因为其不能实例化;B选项:有且仅有实现一个interfaceD选项:static变量属于类3(1)类似一个覆盖override,当然会实现new对象里的method
2025-02-01 20:24:39
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01
2024-09-10 08:50:00