java程序的运行机制
java语言比较特殊,由java语言编写的程序需要经过编译步骤,但这个编译步骤并不会生成特定平台的字节码,而是生成一种与平台无关的字节码(即*.class文件)。然,这中字节码并不是可执行的,必须使用java解释器来解释执行。因此我们认为,java语言是编译型语言,也是解释型语言
java程序的执行过程必须经过先编译,后解释的步骤。(在dos命令中,用javac,进行编译,用关键字java解释执行)
JVM(Java Virtual Machine)
Java语言里负责解释执行字节码文件的是Java虚拟机,即JVM。所有平台上的JVM向编译器提供相同的编程接口,而编译器只需要面向虚拟机,生成虚拟机能理解的代码,然后由虚拟机来解释执行。在一些虚拟机的实现中,还会将虚拟机代码转换成特定系统的机器码执行,从而提高执行效率。
不同平台上的JVM是不同的,当使用java编译器编译java程序时,生成的是与平台无关的字节码,这些字节码不面向任何具体平台,只面向JVM。JVM是java程序跨平台的关键部分。
开发java的准备
关于JDK
JDK提供了开发java应用程序的开发包,,它提供了编译,运行java程序所需的各种工具和资源,包括java编译器,java运行时环境,以及常用的java类库等。
JRE,与jvm的关系
JRE(java运行时环境)包含JVM,jvm是运行java程序的核心虚拟机,而运行java程序不仅需要核心虚拟机,,还需要其他的类加载器,字节码校验器以及大量的基础类库。JRE处理包含jvm外,还包含运行java程序的其他环境支持。一般而言,如果只是运行java程序,我们可以只安装jre,无需安装jdk
注:开发java程序,则应该选择安装JDK,当然,安装了JDK后,就包含了JRE,也可以运行java程序。但如果只是运行java程序,则需要在计算机上安装JRE,仅安装JVM是不够的。实际
上, SAN网站上提供的就是JRE的下载,并不提供单独JVM的下载