当前位置:首页 » 编程语言 » java运行过程

java运行过程

发布时间: 2022-09-01 15:18:12

java编译运行过程

程序员所编写的是以.java为后缀的文件,此文件操作系统不能正确识别,因此,首先要经过编译,生成所谓的字节码文件(.class),而字节码文件需要JVM来提供运行环境的支持。
JVM是一个软件,安装在操作系统中,是建立在操作系统之上的,为字节码文件提供运行环境,效果如图 – 1 所示。

图- 1
Java官方提供了针对不同平台的JVM软件,即:不同平台的JVM是不同的。但这些JVM遵循着相同的标准,即:只要是标准的.class文件,就可以在不同的JVM上运行,而且运行的效果相同。这样,就实现了所谓的“一次编程到处使用”。效果如图– 2所示:

图- 2
Java程序遵循着先编译、后执行的原则。首先,通过javac命令将JAVA源程序(.java文件)编译为JAVA字节码(.class文件),而后,通过java命令启动JVM,由JVM来加载.class文件并运行.class文件。效果如图 – 3所示:

图- 3

Ⅱ 简述Java程序从编写到运行的基本步骤,并说明Java的基本工作原理

Java编译原理:
Java 虚拟机(JVM)是可运行Java 代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。
一.Java源文件的编译、下载 、解释和执行
Java应用程序的开发周期包括编译、下载 、解释和执行几个部分。Java编译程序将Java源程序翻译为JVM可执行代码?字节码。这一编译过程同C/C++ 的编译有些不同。当C编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行而产生的。因此,在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。Java编译器却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将这些符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,然后再通过查表来确定一个方法所在的地址。这样就有效的保证了Java的可移植性和安全 性。

运行JVM字节码的工作是由解释器来完成的。解释执行过程分三部进行:代码的装入、代码的校验和代码的执行。装入代码的工作由"类装载器"(class loader)完成。类装载器负责装入运行一个程序需要的所有代码,这也包括程序代码中的类所继承的类和被其调用的类。当类装载器装入一个类时,该类被放在自己的名字空间中。除了通过符号引用自己名字空间以外的类,类之间没有其他办法可以影响其他类。在本台计算机上的所有类都在同一地址空间内,而所有从外部引进的类,都有一个自己独立的名字空间。这使得本地类通过共享相同的名字空间获得较高的运行效率,同时又保证它们与从外部引进的类不会相互影响。当装入了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。解释器为符号引用同特定的地址空间建立对应关系及查询表。通过在这一阶段确定代码的内存布局,Java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码对地址的非法访问

随后,被装入的代码由字节码校验器进行检查。校验器可发现操作数栈溢出,非法数据类型转化等多种错误。通过校验后,代码便开始执行了。

Java字节码的执行有两种方式:
1.即时编译方式:解释器先将字节码编译成机器码,然后再执行该机器码。
2.解释执行方式:解释器通过每次解释并执行一小段代码来完成Java字节码程 序的所有操作。
通常采用的是第二种方法。由于JVM规格描述具有足够的灵活性,这使得将字节码翻译为机器代码的工作

具有较高的效率。对于那些对运行速度要求较高的应用程序,解释器可将Java字节码即时编译为机器码,从而很好地保证了Java代码的可移植性和高性能。

Ⅲ 简述java应用程序的运行过程

java的运行在自身的虚拟机上(jvm),jvm通过loader(类加载器)加载.class文件(java的指令文件),jvm把class文件最终翻译成系统指令执行.

Ⅳ 简述java语言的执行过程

先编写好.java的文件,这个成为源文件,在使用javac编译源文件,得到.class文件(javac
Test.java),最后执行java命令得到结果(java
Test)。

Ⅳ 简述JAVA程序运行过程

1,如果java文件没有package,就默认给文件加上"无名"package;
2,默认导入java.lang包,所以我们的java程序中可以使用Sting,Math,Integer等类,包括一些异常类;
3,如果生成的类没有父类,则为这个类隐式加上父类:Object;因此,包括Object中的许多方法可以使用;
4,字段的初始化;

二,我们所看的到的:
既然看的到,就先看程序运行结果:

public class JRun1 {

public JRun1() {
System.out.println(" 构造函数");
}
static
{
System.out.println("static{}");
}
{
System.out.println("{}");
}

public static void main(String[] args) {
System.out.println("main()");
}

}
运行结果:
static{}
main()

显然,程序运行时,先运行:
static
{
System.out.println("static{}");
}
再调用main();

如果我们在类中建立一个对象:
public class JRun1 {

public JRun1() {
System.out.println(" 构造函数");
}

static
{
System.out.println("static{}");
}

{
System.out.println("{}");
}

public static void main(String[] args) {
System.out.println("main()");
new JRun1();
}
}

运行结果:
static{}
main()
{}
构造函数

从而,我们得出:
建立一个非主类对象,顺序为:静态初始化块static{}-->初始化块{}-->构造函数constructor;

那么,牵涉到继承,运行流程又如何?

看程序:

class JRun1Father{
JRun1Father(){
System.out.println("父类构造函数");
}

static{
System.out.println("父类静态初始化块");
}

{
System.out.println("父类初始化块");
}

}

public class JRun1 extends JRun1Father{

public JRun1() {
System.out.println("子类构造函数");
}

static
{
System.out.println("子类静态初始化块");
}

{
System.out.println("子类初始化块");
}

public static void main(String[] args) {
//System.out.println("主方法)");
new JRun1();
}
}

运行结果:

父类静态初始化块
子类静态初始化块
父类初始化块
父类构造函数
子类初始化块
子类构造函数

所以,牵涉到父类:父静态-->子静态-->父初始化及构造-->子初始化及构造;
注意:初始化块和构造是接连运行的,不会父类子类交替.

Ⅵ 开发与运行Java程序需要经过的三个主要步骤是

创建Java源程序
Java源程序一般用java作为扩展名,是一个文本文
件,用Java语言写成,可以用任何文本编辑器创建
与编辑;
编译源程序
Java编译器,“javac”,读取你的Java源程序并翻译
成Java虚拟机能够明白的指令集合,且以字节码的
形式保存在文件中。通常,字节码文件以class作为
扩展名;
运行class(字节码)文件
Java解释器读取字节码,取出指令并且翻译成计算
机能执行的代码,完成运行过程;

Ⅶ java工作原理

Java工作原理
由四方面组成:

(1)Java编程语言
(2)Java类文件格式
(3)Java虚拟机
(4)Java应用程序接口
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类 ,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用 。

Ⅷ 简述JAVA程序的编辑编译和运行过程

第一步(编译): 创建完源文件之后,程序会先被编译为.class文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用,这个有点象make。

如果java编译器在指定目录下找不到该类所其依赖的类的.class文件或者.java源文件的话,编译器话报“cant find symbol”的错误。

第二步(运行):java类运行的过程大概可分为两个过程:1、类的加载 2、类的执行。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。也就是说,JVM并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。

特别说明:java类中所有public和protected的实例方法都采用动态绑定机制,所有私有方法、静态方法、构造器及初始化方法<clinit>都是采用静态绑定机制。而使用动态绑定机制的时候会用到方法表,静态绑定时并不会用到。

(8)java运行过程扩展阅读:

Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。

Java代码编译:是由Java源码编译器来完成;

Java字节码的执行:是由JVM执行引擎来完成

Java程序从源文件创建到程序运行要经过两大步骤:

1、源文件由编译器编译成字节码(ByteCode)

2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted" language)。

Ⅸ 开发和运行java程序需要经过哪些主要步骤和过程

首先,你的电脑上要装运行环境,也就是所谓得JKD,安装后,配置好环境变量,然后进行下面步骤。 1.来个最简单的,打开记事本,编写Java程序,编写好后,保存,文件名后缀必须为:.java.比如:Hello.java 2.然后点击开始-----》运行-------》输入CMD----》到你保存的这个问题的目录下(也就是进入了DOS环境)。然后输入:javac Hello.java,开始编译。 3.等编译通过后,再输入java Hello,程序运行。如果有报错,修改出问题处,再次进行步骤2. Java大小写敏感,注意大小写。

热点内容
搭建服务器租用电信的怎么样 发布:2025-01-16 05:12:32 浏览:48
phpmysql源码下载 发布:2025-01-16 05:12:31 浏览:210
python安装依赖包 发布:2025-01-16 05:11:45 浏览:995
澳门云主机品牌服务器 发布:2025-01-16 05:06:55 浏览:768
数据库设计主要内容 发布:2025-01-16 05:02:02 浏览:12
存储过程如何修改 发布:2025-01-16 05:01:55 浏览:633
照片压缩包 发布:2025-01-16 04:56:56 浏览:742
手机存储用到多少最好 发布:2025-01-16 04:56:19 浏览:781
ftp站点不能启动 发布:2025-01-16 04:55:31 浏览:54
pythonip合法性 发布:2025-01-16 04:48:52 浏览:75