什么是Java虚拟机以及JDK,JRE,JVM的区别和联系

您所在的位置:网站首页 java虚拟机指的是哪个文件 什么是Java虚拟机以及JDK,JRE,JVM的区别和联系

什么是Java虚拟机以及JDK,JRE,JVM的区别和联系

2024-05-03 16:28| 来源: 网络整理| 查看: 265

文章目录1官方定义2如何去理解Write Once Run AnyWhere3JDK JRE JVM 的区别和联系3.1JDK(Java SE Development Kit)3.2JRE(Java Runtime Environment)3.3JVM(Java Virtual Machine)4JDK JRE JVM的区别与联系1官方定义

不要背,简单看看理解完事了

The Java Virtual Machine (JVM) is an abstract computing machine. The JVM is a program that looks like a machine to the programs written to execute in it. This way, Java programs are written to the same set of interfaces and libraries. Each JVM implementation for a specific operating system, translates the Java programming instructions into instructions and commands that run on the local operating system. This way, Java programs achieve platform independence 翻译一下: Java虚拟机(JVM)是一种抽象计算机器。JVM是一个程序,它看起来像是一台机器,用于编写并在其中执行的程序。通过这种方式,Java程序被写入同一组接口和库中。针对特定操作系统的每个JVM实现都将Java编程指令转换为在本地操作系统上运行的指令和命令。这样,Java程序就实现了平台独立性。

一句话:Java 虚拟机就是我们java应用的运行环境,Java语言使用Java虚拟机屏蔽操作系统和机器之间的差异,达到Write Once Run Anywhere

2如何去理解Write Once Run AnyWhere

我们大家都知道,通常由javac 去编译程序源代码,转换成Java字节码,JVM通过解析字节码文件,将其翻译成对应的机器指令,逐条读入,逐条解析。

对于大部分程序只需要关注前端编译,是将我们的javac 编译器把java文件编译成字节码,然后加载到JVM的这个流程,也是我们这节课的重点内容。

在这里插入图片描述在这里插入图片描述3JDK JRE JVM 的区别和联系3.1JDK(Java SE Development Kit)

JDK(Java SE Development Kit),Java标准开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器(javac)、java运行时环境,以及常用的Java类库等等

下图是JDK的安装目录:

在这里插入图片描述在这里插入图片描述

打开目录: D:\sdk\Java\jdk1.8.0_321

bin文件夹下:里面我们最常用的就是javac.exe 、web services、javadoc、等等

jre文件夹下:java运行环境

lib文件夹下:java 的基础类库,比如dt.jar(有关于swing文件)、tools.jar

include文件夹下:java和JVM交互用的头文件(c++.h文件)

3.2JRE(Java Runtime Environment)

JRE(Java Runtime Environment)Java运行环境,用于解析执行Java的字节码文件。普通用户而只需要安装JRE来运行Java程序。而程序开发者必须需要安装JDK来编译、调试程序。 下图是JRE的安装目录: 里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需的类库,而jvm和lib合起来就称为jre。

在这里插入图片描述在这里插入图片描述

lib文件夹下:jvm工作所需的类库 bin文件夹下:jvm (这里可以理解为java虚拟机)

3.3JVM(Java Virtual Machine)

JVM(Java Virtual Machine),Java 虚拟机,是JRE内的一部分。它是整个Java 实现跨平台的最核心的部分,负责解析执行字节码文件的虚拟机计算机。所有平台的JVM向编译器提供相同的接口,而我们编译器只需要面向虚拟机,生成虚拟机能识别的代码(字节码),然后由虚拟机来解释执行。

4JDK JRE JVM的区别与联系

客户:我只需要运行Java应用,我就需要JRE。 开发者:我需要JDK里面的工具帮我编译源代码,而且需要JRE核心类库做支持,并且运行在JVM中测试应用程序。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3