前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么是Java虚拟机以及JDK,JRE,JVM的区别和联系

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

作者头像
向着百万年薪努力的小赵
发布2022-12-02 10:45:14
6260
发布2022-12-02 10:45:14
举报
文章被收录于专栏:小赵的Java学习

文章目录

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中测试应用程序。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1官方定义
  • 2如何去理解Write Once Run AnyWhere
  • 3JDK JRE JVM 的区别和联系
    • 3.1JDK(Java SE Development Kit)
      • 3.2JRE(Java Runtime Environment)
        • 3.3JVM(Java Virtual Machine)
        • 4JDK JRE JVM的区别与联系
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档