jdk,jre,jvm三者间有何关系?
JVM:Java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。
JRE:Java运行环境,光有JVM还不能让class文件执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。
JDK:Java开发工具包
JDK,JRE,JVM三者关系概括如下:
JDK是JAVA程序开发时用的开发工具包,其内部也有Java运行环境JRE。JRE是Java程序运行时需要的运行环境,就是说如果你光是运行Java程序而不是去搞开发的话,只安装JRE就能运行已经存在的Java程序了。JDk、JRE内部都包含JAVA虚拟机JVM,JAVA虚拟机内部包含许多应用程序的类的解释器和类加载器等等。
JVM 是 Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
Java虚拟机是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台的机器指令执行。每一条Java指令,Java虚拟机规范中都有详细定义,如怎么取操作数,怎么处理操作数,处理结果放在哪里。
特点
一次编译,到处运次(跨平台)
自动内存管理
自动垃圾回收功能
字节码
我们平时所说的java字节码,指的是用java语言编写的字节码,准确的说任何能在jvm平台上执行的字节码格式都是一样的,所以应该统称为jvm字节码。
不同的编译器可以编译出相同的字节码文件,字节码文件也可以在不同的jvm上运行。
Java虚拟机与Java语言没有必然的联系,它只与特定的二进制文件格式——Class文件格式关联,Class文件中包含了Java虚拟机指令集(或者称为字节码、Bytecodes)和符号集,还有一些其他辅助信息。
想要了解更多建议去B站尚学堂观看教学免费视频
针对Java语言的初学者,详细介绍初学者对于Java的JDK、JRE、JVM之间的关系,帮助初学者能够理清楚它们各自的作用和应用范围。
2020-10-12 · 学动漫、设计、电竞、电商、短视频、软件等
JRE是Java运行环境(Java Runtime Environment,简称JRE),JRE可以让计算机系统运行Java应用程序(Java Application)。也就是说jre只能运行Java系统,不能编译Java代码
JRE的内部有一个Java虚拟机(Java Virtual Machine,JVM)以及一些标准的类别函数库(Class Library)。
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一个软件平台。通过再不同的操作系统安装Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。