Java跨平台原理及jvm,jdk,jre之间的关系

jvm,jdk,jre三者关系

他们三者之间的包含关系:jdk>jre>jvm
jdk
英文名称(Java Virtual Machine),Java开发工具包,是Java开发的核心,它集成了jre的一些好用的小工具,如javac.exe,java.exe,jar.exe等。
jre
英文名称(Java Runtime Environment),我们叫它Java运行环境,它主要包含两个部分,jvm的标准实现和Java的一些基本类库,它相对于jvm来说,多出来的一部分是Java类库。
jvm
JVM :英文名称(Java Virtual Machine),这个就是传说中的Java虚拟机,它只认以.class结尾的文件,它能够将class文件中的字节码文件的字节码指令进行识别并调用操作系统向上的API完成动作,所以说jvm是Java能够跨平台的原因。

Java跨平台原理

1. c/c++语言都直接编译成针对特定平台的机器码,如果要跨平台,需要使用相应的编译器重新编译。
2. Java源程序(.java)要先编译成与平台无关的字节码文件(.class),然后字节码文件再解释成机器码运行,解释是通过Java虚拟机来执行的。
3. 字节码文件不面向任何具体平台,只面向虚拟机。
4. Java虚拟机是可运行Java字节码文件的虚拟计算机,不同平台的虚拟机是不同的,但他们都提供了相同的接口。
5. Java语言具有一次编译,到处运行的特点,就是说编译后的.class可以跨平台运行,前提是该平台具有相应的虚拟机,但是性能比c/c++要低。
6. Java的跨平台原理决定了器性能没有c/c++高。

你可能感兴趣的:(java底层)