美文网首页
JDK,JRE和JVM之间的区别

JDK,JRE和JVM之间的区别

作者: hongXkeX | 来源:发表于2017-09-12 11:11 被阅读41次

你是无意穿堂风 偏偏孤倨引山洪

基本区别:

JVM


JVM(Java虚拟机)是一个抽象机器。它是一个提供可以执行Java字节码的运行时环境的规范。

JVM可用于许多硬件和软件平台。JVM,JRE和JDK是平台相关的,因为每个OS的配置不同。 但是,Java是平台无关的。

JVM执行以下主要任务:

  • 加载代码
  • 验证代码
  • 执行代码
  • 提供运行时环境

JRE


JRE是Java Runtime Environment的缩写。它用于提供运行时环境。它是JVM的实现。它是实际存在的。它包含一组库和JVM在运行时使用的其他文件。
Sun Micro Systems以外的其他公司也积极发布JVM的实施(实现)。

JRE

JDK


JDK是Java Development Kit的缩写,它是实际上存在的。它包含JRE+开发工具。如下图所示:

JDK

Java虚拟机内部体系结构

什么是JVM?


JVM(Java虚拟机)是:

  • 指定Java虚拟机的工作的规范。 但实现提供程序是独立的选择算法。 其实现是由Sun和其他公司提供。
  • 它的实现被称为JRE(Java运行时环境)。
  • 运行时实例只要在命令提示符上编写java命令来运行java类,就会创建JVM的实例。

JVM(Java虚拟机)能做什么?


JVM执行以下操作:

  • 加载代码
  • 验证代码
  • 执行代码
  • 提供运行时环境

JVM提供了以下定义:

  • 内存区
  • 类文件格式
  • 寄存器集合
  • 垃圾收集堆
  • 致命错误报告等

JVM(Java虚拟机)内部体系结构


下面来了解JVM的内部架构。它包含类加载器,内存区域,执行引擎等。

JVM(Java虚拟机)内部体系结构

1) 类加载器
Classloader 是JVM的一个子系统,用于加载类文件。

2) 类(方法)区域
类(方法)区域存储每个类结构,例如运行时常量池,字段和方法数据,方法的代码。

3) 堆
它是分配对象的运行时数据区。

4) 堆栈
Java堆栈存储帧。它保存局部变量和部分结果,并在方法调用和返回中起作用。
每个线程都有一个私有JVM堆栈,同时创建线程。每次调用方法时都会创建一个新的框架。 框架在其方法调用完成时被销毁。

5) 程序计数器寄存器
PC(程序计数器)寄存器。 它包含当前正在执行的Java虚拟机指令的地址。

6) 本地方法堆栈
它包含应用程序中使用的所有本地方法。

7) 执行引擎
执行引擎包含:

  • 虚拟处理器
  • 解释器:读取字节码流,然后执行指令。
  • 即时(JIT)编译器:它用于提高性能,JIT编译的同时有类似字节代码部分的功能,从而减少编译所需的时间。编译器是指从Java虚拟机(JVM)的指令集到特定CPU的指令集的转换器。

世界上所有的追求都是因为热爱
一枚爱诗词 爱生活 爱分享的IT信徒
— hongXkeX

相关文章

  • 撩课-Java每天10道面试题第1天

    1.简述JDK、JRE、JVM? 2.JDK、JRE、JVM三者的有什么联系和区别? 3、简述Java程序编译和运...

  • 撩课-Java面试题合辑1-50题

    1.简述JDK、JRE、JVM? 2.JDK、JRE、JVM三者的有什么联系和区别? 3、简述Java程序编译和运...

  • JDK,JRE和JVM之间的区别

    你是无意穿堂风 偏偏孤倨引山洪 基本区别: JVM JVM(Java虚拟机)是一个抽象机器。它是一个提供可以执行J...

  • JDK,JRE,JVM/ path环境

    1. JDK,JRE,JVM 三者之间的关系,以及JDK,JRE的主要结构有哪些? 包含关系:JVM

  • Java基础知识大全

    一、基础知识: 原文地址 1、JVM、JRE和JDK的区别: JVM(Java Virtual Machine):...

  • java基础01基础知识

    一、基础知识: 1、JVM、JRE和JDK的区别: JVM(Java Virtual Machine):java虚...

  • Java基础知识

    一、基础知识: 1、JVM、JRE和JDK的区别: JVM(Java Virtual Machine):j...

  • Java JDK、JRE、JVM

    一、JDK、JRE 、JVM 的区别 什么是JDK Jdk【Java Development ToolKit】就是...

  • Java最开始的

    Java最开始的 JDK、JRE与JVM的区别 JDK是开发的环境依赖,JRE是程序运行环境依赖,JVM(Java...

  • javase(基础知识)

    一、基础知识 1. JVM、JRE和JDK的区别 JVM(Java Virtual Machine):java虚拟...

网友评论

      本文标题:JDK,JRE和JVM之间的区别

      本文链接:https://www.haomeiwen.com/subject/vrfcsxtx.html