-
. JVM(Java Virtual MAchine-Java虚拟机)
-
作用:Java程序的跨平台特性主要就是因为JVM实现的。在编译java程序时会将写好的源程序通过编译器编译生成.class文件(又称为字节码文件),之后就是通过JVM内部的解释器将字节码文件解释成为具体平台上的机器指令执行,所以就可以实现java程序的跨平台特性。
-
JVM内部体系结构大致分为三部分:类装载器(ClassLoader)子系统,运行时数据区和执行引擎。
-
-
JRE(Java Runtime Enviroment-Java运行环境)
- 作用:java程序的运行环境
JRE:java运行环境 jre=java虚拟机+核心类库。
- JDK(Java Development Kit-java开发工具包)
- 作用:主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库。
JDK :java开发工具集。JDK=jre+java开发工具。
- 三者的联系
- JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre。 JVM+Lib=JRE。
- 总体来说就是,我们利用JDK开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码(.class文件),在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
JDK把java翻译成.class—>jre运行.class—>送给操作系统识别—>C语言识别—>汇编语言识别—>转变为二进制