JDK,JRE,JVM内容 与关系

JRE=JVM+libs【Java运行时所需要的类库】
JDK=JRE+java开发工具

Java跨平台原理
由源文件(.java)—>字节码文件(.class)(二进制文件)-----> 解释---->Unix,Win,Linux等机器。
1.一次编译,到处运行
2.编译器的作用:将源文件编译成class文件
3.虚拟机的作用:将字节码文件解释成对应平台机器码并执行。
4.java可以实现跨所有的平台?只有提供并且安装了相对应的虚拟机就可以跨该平台。
5.虚拟机和解释器的关系:解释器是虚拟机的一个重要的组成部分。
6.Java语言的执行要经过编译和解释两个阶段。

JDK JRE JVM 分别是什么,有什么作用,简述它们之间的关系
JDK
JDK:Java Development Kit
含义:Java开发工具包
JRE
全名:Java runtime environment
含义:Java运行环境
JVM
全名:Java Virtual Machine
含义:Java虚拟机

使用人群:
jdk 是给开发人员使用的, jre和jvm是给普通用户使用

一、JDK(Java Development Kit)
JDK(Java Development Kit),即Java开发工具包,是一个编写Java应用程序的开发环境。

JDK是整个Java的核心,包括了JRE(Java运行环境)与一些Java开发工具(例如:jconsole、javac、java、javadoc、native2ascii、jar等)。JDK=JRE+Java开发工具(编译器、调试器等)。

主流的JDK是Sun公司发布的JDK,除了Sun公司之外,还有很多公司和组织都开发了自己的JDK。例如:IBM公司开发的JDK,BEA公司的JDK,还有GNU组织开发的JDK。

jdk1.8目录包含:

bin:一堆exe文件,可执行的开发工具,最主要的是javac, 例如:jconsole、javac、java、javadoc、native2ascii。
jre:java运行环境,包括JVM+Java基础&核心类库 。
lib:包含dt.jar+tools.jar的常用类库,开发依赖包。
db:jdk从1.6之后内置了Derby数据库,它是是一个纯用Java实现的内存数据库,属于Apache的一个开源项目。用Java实现的,所以可以在任何平台上运行;另外一个特点是体积小,免安装,只需要几个小jar包就可以运行了。
include:java和JVM交互用的头文件。
二、JVM(Java Virtual Machine)
JVM(Java Virtual Machine),即Java虚拟机,运行在操作系统之上,存在于内存中,与内存打交道,与硬件没有直接交互,是Java语言实现跨平台的核心。

JVM主要负责运行Java编译器编译后的字节码文件(*.class文件)。JVM在执行字节码时,把字节码解释成具体平台上的机器码执行。JVM自己无法执行,必须要联合JRE中的Java基础&核心类库才能使用。

JVM是一种抽象,虚拟出来的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域,它负责执行指令,还要管理数据,内存和寄存器,指令集,寄存器,类文件的格式,栈,垃圾回收堆,存储区等。

三、JRE(Java Runtime Environment)
JRE(Java Runtime Environment),即Java运行环境,支持Java程序运行的标准环境,包括了JVM(Java虚拟机)的标准实现以及Java基础&核心类库。JRE=JVM+Java基础&核心类库。

jre1.8目录包含:

bin:有java.exe但没有javac.exe,无法编译Java程序,但可以运行Java程序,可以把这个bin目录理解成JVM。
lib:Java基础&核心类库,如rt.jar,也包含JVM运行时需要的类库。
四、JDK&JRE&JVM总结:
JRE=JVM+Java基础&核心类库。
JDK=JRE+Java开发工具(编译器、调试器等)。
JRE是个运行环境,JDK是个开发环境,编写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。因为JDK里面已经包含了JRE,因此只要安装了JDK,就可以开发Java程序,也可以正常运行Java程序。

但由于JDK包含了许多与运行无关的内容,例如编译器、调试器等,占用的空间较大,
因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可(例如在服务器中运行Java程序)。

如下图:
在这里插入图片描述

关联关系:简单来说就是JDK包含JRE,JRE包含JVM的关系
Java基础:JDK、JRE、JVM的区别与联系
JVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可 以在虚拟机上执行,也就是说class并不直接与机器的…

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JDKJava Development Kit)、JREJava Runtime Environment)和JVMJava Virtual Machine)都是Java平台的重要组成部分。JDK包含JRE和一些开发工具,JRE包含JVMJava核心类库,而JVM则是Java程序的运行环境。简而言之,JDK是开发Java程序的必备工具,JRE是运行Java程序的必备环境,JVM则是在JRE上运行Java程序的核心组件。 ### 回答2: JDKJava Development Kit),JREJava Runtime Environment)和JVMJava Virtual Machine)是Java开发和运行环境中不同组件之间的关系JDKJava开发工具包,它提供了开发人员所需要的编译、调试、运行和部署Java程序的工具和库。JDK包含了Java编程语言的编译器(javac)、Java类库、调试工具和其他辅助工具。 JREJava运行环境,它是JDK的子集,包含了Java虚拟机(JVM)和Java类库。JRE的主要作用是用于运行Java程序,而不包括用于开发Java程序的工具和库。 JVMJava虚拟机,它是Java程序在计算机上运行的虚拟机。JVM负责加载和执行Java字节码(编译后的Java程序)并提供程序运行时所需的其他功能,如垃圾回收和内存管理。 JDKJREJVM之间的关系是这样的:JDK 包含了 JRE,而 JRE 含有 JVM。也就是说,JDK 提供了开发Java程序所需的工具和库(包含 JRE),而 JRE 则提供了运行Java程序所需的环境(包含 JVM)。 总结起来就是,JDK 包含了开发和运行Java程序所需的工具、库和环境,JREJDK 的一个子集,只包含运行Java程序所需的环境,而 JVMJava程序在计算机上运行的虚拟机。 ### 回答3: JDKJava Development Kit),JREJava Runtime Environment)和JVMJava Virtual Machine)是Java编程中非常重要的概念。它们之间有着密切的关系JDKJava开发工具包,它包含了用于开发、编译和调试Java应用程序的各种工具和库。它提供了Java的开发环境,包括编译器、调试器、集成开发环境(IDE)等。JDK还提供了许多标准的Java类库和API(应用程序接口),供开发人员使用。 JREJava运行时环境,它是在计算机上运行Java应用程序所必需的。它包含Java虚拟机(JVM)和许多运行时库(Runtime Libraries),用于执行Java字节码并提供各种功能和服务,如内存管理、线程管理和异常处理等。JRE只能用于运行Java程序,而不能用于开发新的Java应用程序。 而JVMJava虚拟机,它是整个Java平台的核心部分。它负责解释和执行Java字节码(由Java编译器生成的中间代码),并将其转换为对应操作系统能够理解的机器语言。JVM提供了一种独立于硬件和操作系统的执行环境,使得Java程序可以在不同的平台上运行。 综上所述,JDKJava开发工具包,提供了用于开发和编译Java应用程序的工具和库;JREJava运行时环境,用于运行Java应用程序;而JVMJava虚拟机,负责解释和执行Java字节码。JDK依赖于JRE,因为它需要在JRE的基础上才能开发和编译Java程序。而JRE依赖于JVM,因为它需要JVM来执行Java字节码。因此,JDKJREJVM三者密切相关,相互配合,构成了完整的Java开发和运行环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值