JVM,JRE,JDK,

1,JVM(Java Virtual Machine)

JVM(Java虚拟机)是整个Java实现跨平台最核心的部分。

所有的Java程序都会被先编译为后缀是(.class)的类文件,这种类文件可以再虚拟机上执行。

也就是说(.class)的类文件并不直接与机器的操作系统相对应,而是经过了虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。

JVM是Java平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行时操作不同的内存区域。

JVM通过抽象操作系统和CPU结构,提供了一种与平台无关的代码执行方法,即与特殊的实现方法,主机硬件,主机操作系统无关。

JVM的主要工作是解释自己的指令集(即字节码)到CPU的指令集或对应的系统调用,保护用户被恶意程序骚扰。

JVM对上层的Java源文件是不关心的,它关注的只是由源文件生成的类文件(字节码文件(.class))

2,JRE(Java runtime environment)

JRE(Java运行环境)主要作用是协助字节码文件(.class)在JVM(Java虚拟机)中执行。

只有JVM还不能让字节码文件(.class)执行,因为在解释字节码文件(.class)的时候JVM需要调用解释所需要的类库lib。

在JDK的安装目录里你可以找到JRE目录,里面有两个文件夹bin和lib。

在这里可以认为bin里的就是JVM,而lib则是JVM工作所需要的类库,二者合并就称为JRE。

JRE只与具体的CPU结构和操作系统有关,是运行的Java程序必不可少的

3,JDK(Java Development kit)

JDK的中文名是Java开发工具包

我们看一下JDK的安装目录。在目录下面有六个文件夹、一个src类库源码压缩包、和其他几个声明文件。

其中,真正在运行java时起作用的是以下四个文件夹:bin,include,lib,jre。

bin:最主要的是编译器(javac.exe)

include:java和JVM交互用的头文件

lib:类库      

jre:java运行环境

现在我们可以看出这样的一个关系:JDK包含JRE,而JRE包含JVM。

(注意:这里的bin、lib文件夹和jre里的bin、lib是不同的)总的来说JDK是用于java程序的开发,而jre则是只能运行class而没有编译的功能。eclipse、idea等其他IDE有自己的编译器而不是用JDK bin目录中自带的,所以在安装时你会发现他们只要求选则jre路径就ok了。

4,关系概括:

JDK是Java程序开发时用的开发工具包,其内部也有JRE运行环境。

JRE是Java程序运行时需要的运行环境。如果不做Java开发工作,只安装JRE就可以运行已经存在的Java程序了。

JDK,JRE内部都包含了Java虚拟机JVM,Java虚拟机内部包含许多应用程序的类的解释器和类加载器等。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值