Java语言运行机制

2016-01-17|来源:

Java引进Java虚拟机(JVM)技术:在机器和编译器之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译器一个共同的接口。编译器只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来执行。


Java源程序经过编译器编译后变成字节码(.class文件),此字节码与平台无关,不面向任何平台,它只面向java虚拟机。字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。


.java源文件--编译器--->.class二进制字节码文件--JVM中解释执行-->机器指令


以一个简单的示例说明,假如这个示例为Hello.java

1. 写好的程序,我们会用javacHello.java来编译;

2. 编译会生成一个文件为Hello.class,此class文件就是编译好的字节码文件,这个字节码能被jvm识别;

3. 编译完成之后,会用javaHello来执行程序,这时候会把Hello.class字节码装载到jvm中(通常是持久带,hotspot版本的虚拟机中持久带是在代码区);

4. 这时候的执行过程是这样的:jvm一边解释,程序一边运行;jvm解释到哪里,程序就运行到哪里;

所以,java语言是先编译后解释执行的语言,先编译时编译成jvm能识别的字节码(与特定平台相关,传统的编译时和操作系统平台相关),后通过jvm一边解释一边执行;


整理于网络


相关问答

更多

JVM的运行机制是什么

运行java.exe的时候是如何load jvm的呢,看过王森<java深度历险>一书,但是没有说的很具体,我测试了一下,总结如下, Windows下: 当运行java.exe的时候,java首先寻找java.dll文件 1,如果找到就去找../lib/i386/(相对目录)里的jvm.cfg文件(这个文件里是启动哪个jvmd的相对应的参数),根据java.exe的参 ... by mikeyi 2004-04-14 启动eclipse后自 项目组的cvs服务器上要装个eclipse,先装了jdk ...

什么是Aop编程,Aop在spring中是如何实现的,它的运行机制是什么?

aop就是切面编程,通俗的说,java是面向对象,会有很多很多类,然而这些类会有一向相同的行为,对这一类相同的行为做操作,就是aop了

java 动态代理的原理机制

建议去看看《java反射机制与动态代理模式》系列视频,讲得很好

怎么运行java程序

比如说保存为"D:\java\test.java",然后转换目录到那里"cd D:\java",编译这个.java文件"javac test.java"这个javac的命令一定要记住,这是jdk里面最为常用的之一,是个java的编译器,具体参数你自己研究吧,很多,配合使用会得到意想不到的结果。这时候应该在"D:\java\"目录下面生成了一个test.class文件,这个就是一个二进制文件,就像windows下面常见的exe文件一样,只不过这个二进制文件是java虚拟机的(具体java的运行机制书 ...

java反射机制的具体信息

得到三类信息.1.构造函数2.属性3.方法

专题教程

JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征
Gson教程
快速了解 jdk8 新特征

相关文章

更多

最近更新

更多