作为一名java的使用者,掌握其基本的运行原理与体系结构是必要的,下面我们通过一个简单的例子来简述java程序的运行过程与原理。

创建一个小程序

为了方便介绍,我们选择创建一个百看不厌的小程序"HelloWorld".
(注:以下程序的实现需要事先安装好JDK)

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

Java运用原理 java实现原理_Java

生成class文件

在目录下打开cmd窗口输入:

javac HelloWorld.java

按下回车后我们发现在目录下新生成了HelloWorld的class文件!!?

Java运用原理 java实现原理_java_02

运行Java程序

接下来我们在cmd窗口中继续输入:

java HelloWorld

程序运行成功!!!

至此,恭喜你已经在终端中编译并运行了第一个java程序。

Java运用原理 java实现原理_Java入门_03

Java程序的运行原理

java虚拟机

通过上面小程序的实现,我们发现java程序的实现似乎有所不同,这里我们首先介绍一下java最具吸引力的特性之一——java虚拟机(JYM)

Java虚拟机是一个可以执行Java字节码的虚拟机进程。用Java编写的程序(存放在扩展名为java的文件中)经过编译器(即JDK根目录bin文件夹中的javac.exe文件)编译成字节码文件(即扩展名为class的文件),此时的class文件并不是我们所熟知的01编码,class文件通过虚拟机形成可执行文件。不同平台的JVM各有不同,但均提供相同的接口,实现了程序与操作系统的分离,从而实现了Java 的平台无关性。 也就是说,相对于解释型语言,java这种编译型语言具有较高的可移植性,实现了“”一处编写,处处运行”,编译后,不依赖于平台环境,在各种操作系统均可运行。

Java运用原理 java实现原理_字节码_04

java的运行过程

大体来说,java的运行过程主要分为:

  1. 源文件(.java源代码)通过编译器编译成字节码文件class。
  2. 通过JVM中的解释器将字节码文件生成对应的可执行文件。
  3. 由解释器翻译的特定的机器码将在特定的目标机器上运行。

具体过程如图所示:

Java运用原理 java实现原理_Java运用原理_05

最后

记录一下相关指令:

  1. 编译:javac XXX.java
  2. 执行:java XXX
  3. 反编译 javap –c XXX.class