JDK、JRE和JVM的区别与联系

介绍

Java开发工具 Java Development Kit 简称JDK
Java运行时环境 Java Runtime Environment 简称JRE
Java虚拟机 Java Virtual Machine 简称JVM

详细介绍

JDK

JDK是java开发工具包,是整个Java的核心,包括了Java运行环境(Java Runtime Environment )简称jre,一堆Java工具(javac.exe/java.exe/jdb等)和Java基础的类库(即Java API 包括rt.jar)。jdk中包含jre(jdk11以后没有jre文件夹需要手动添加)。在jre的目录下,有bin和lib文件夹,在这里可以认为bin里面就是jvm,lib是java工作需要的类库,它们两者结合就称为jre。

注意:
jre文件夹下的bin和jdk下的bin是不同的,JDK是用于java程序的开发的(bin下有javac.exe、java.exe等),而jre则只能运行class而没有编译的功能。

JRE:

是运行基于java语音编写的程序必不可小的运行环境,也是通过它,java开发者才可以将自己开发的程序发布到用户手中,让用户使用。jre是运行环境,并不是开发环境,所以没有包含任何开发工具(如编译器,调试器等)。

JRE包含JVM标准实现及Java核心类库,光有JVM还不能执行class文件,因为解释class的时候JVM需要调用解释所需要的类库lib(jre里有运行.class的java.exe)

JVM:

JVM就是我们常说的Java虚拟机,它是整个Java实现跨平台的最核心的部分,所有的Java程序首先被编译为.class文件,这种文件可以在虚拟机上运行,也就是说class并不直接与机器的操作系统相对应,是有我们的JVM解释处理,再交给操作系统处理。

JDK与JRE的关系

1、两者是包含关系,JDK包含JRE
2、应用区别:如果只要运行Java程序,则只需要安装JRE运行环境;如果要做Java开发则必须安装JDK,如果安装了JDK则无需安装JRE。

三者联系

在这里插入图片描述

JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。

Java的运行过程

在这里插入图片描述

字节码文件:
是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,是有Java编译器编译后生成的目标代码文件,编程人员和计算机都无法直接读懂字节码文件,它必须由java解释器来解释执行。

Java解释器:
Java解释器是Java虚拟机的一部分,在运行Java文件时,首先启动JVM,然后由它来负责解释执行 Java 的字节码程序,并且 Java 字节码程序只能运行于 JVM 之上。
在这里插入图片描述

**注意:**Java程序通过JVM可以实现跨平台特性,但JVM是 不跨平台的。也就是说,不同操作系统上的JVM不一样,如:Windows和Linux平台上用的JDK是不一样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值