JAVA运行机制及jre jdk jvm三者关系

java源代码(Hello.java)-----javac编译-→ 字节码(Hello.class)-----运行(告诉)-→ JVM虚拟机(相当于传声器、中间人)-----通知-→ 硬件(操作系统:windows、mac、linux ,以二进制)
Java程序在运行时,必须要进行编译和运行
.java文件经过Javac(编译器)变成了.class文件(字节码文件) , 再经过解析器 ,变成机器码文件 , 最后在计算机上运行。
.class文件,又称字节码文件(byte code)。
我们可以使用 java 文件名的形式启动java虚拟机运行程序 , java虚拟机先将编译好的字节码文件加载到内存中去,(类加载,由类加载器实现) , 然后虚拟机通过Java解析器对加载到内存中的Java类进行解释执行。

JDK是java开发工具包,在其安装目录下面有六个文件夹、一些描述文件、一个src压缩文件。bin、include、lib、 jre这四个文件夹起作用,demo、sample是一些例子。可以看出来JDK包含JRE,而JRE包含JVM。
bin:最主要的是编译器(javac.exe)
include:java和JVM交互用的头文件
lib:类库
jre:java运行环境(注意:这里的bin、lib文件夹和jre里的bin、lib是不同的)
总的来说JDK是用于java程序的开发,而jre则是只能运行class而没有编译的功能。
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。 其中的开发工具包括编译工具(javac.exe)打包工具(jar.exe)等

JRE是指java运行环境。光有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。所以,在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给朋友,这样你的朋友就可以运行你写程序了。
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,
如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
可以理解为是一个虚拟出来的计算机,具备着计算机的基本运算方式,它主要负责将java程序生成的字节码文件解释成具体系统平台上的机器指令。让具体平台如window运行这些Java程序。

jre jdk jvm三者关系:JDK包括JRE,JRE包括JVM
JRE=JVM+JavaSE标准类库
JDK=JRE+开发工具集

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JDKJava开发工具包,它包含了用于开发Java程序、编译Java程序和运行Java程序所需的软件。JREJava运行环境,它包含了用于在计算机上运行Java程序所需的软件。JVMJava虚拟机,它是Java程序运行的软件环境。JDKJRE都包括JVM,但JRE只能运行Java程序,而JDK既可以运行Java程序,也可以开发Java程序。 ### 回答2: JDKJREJVM都是与Java相关的概念。 JDKJava Development Kit)是Java开发工具包,它包含了用于Java程序开发的各种工具和库。JDK的主要组成部分有Java编译器、Java类库、调试工具等。JDK是用于开发Java应用程序的主要工具。 JREJava Runtime Environment)是Java运行时环境,它是用于执行Java程序的环境。JRE包含了Java虚拟机(JVM)和Java类库等必要的运行时组件。简单来说,JRE是用于运行Java应用程序的。 JVMJava Virtual Machine)是Java虚拟机,它是Java程序的核心组件。JVM是一个虚拟的计算机,在物理计算机上执行Java字节码。它负责将Java字节码解释成可执行的机器指令,并提供了内存管理机制和垃圾回收等功能。 三者之间的关系是:JDK是用于开发Java应用程序的工具包,包含了JREJREJava程序的运行时环境,包含了JVMJava类库。JVM是虚拟机,负责执行Java字节码。 在开发Java应用程序时,需要安装JDK来编写、编译和调试代码。JDK包含了JRE,所以在开发过程中可以直接运行和测试程序。而在真正执行Java程序时,只需要安装JRE,因为JRE包含了JVM和必要的类库,可以将Java字节码解释成机器指令并执行。 总结来说,JDK提供了开发Java应用程序的工具,JRE提供了执行Java程序的运行时环境,JVM负责将Java字节码解释成可执行的机器指令。 ### 回答3: JDKJava Development Kit)是Java开发工具包的缩写。JDK包括了一系列开发Java应用程序所需的工具、编译器以及运行环境。它提供了Java的开发环境,用于编写、编译和运行Java程序。 JREJava Runtime Environment)是Java运行时环境的缩写。它包含了Java虚拟机(JVM)以及运行Java程序所需的类库和其他支持文件。JRE不包含开发工具,只提供了运行Java程序所需的环境。 JVMJava Virtual Machine)是Java虚拟机的缩写。它是Java程序的运行环境,负责将Java字节码翻译成机器码并执行。JVM在不同的操作系统上实现了相同的Java程序执行环境,使得Java程序具有了跨平台的特性。 三者之间的关系是:JDKJava程序开发的工具包,JDK中包含了JREJDK提供了编译器、调试器等开发工具,并且包含了JRE所需的类库和其他支持文件。JRE则包含了JVM,提供了Java程序运行所需的环境。JVM负责将Java字节码转换成机器码并执行。 简单来说,JDK是开发Java程序所需的工具包,JRE是运行Java程序所需的环境,JVMJava程序的执行引擎。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值