2-JVM、JRE、JDK的作用及联系和区别

在Java环境配置和项目启动中,这三者的配置是项目启动的基础保证。

JVM(Java Virtual Machine),Java虚拟机,就是一个虚拟的用于解析bytecode字节码的”虚拟计算机”。一般与OS操作系统打交道。是整个java实现跨平台的最核心的部分【使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码只面向JVM。不同平台的JVM都是不同的,但它们都提供了相同的接口。只要为不同平台实现了相应的虚拟机,编译后的Java字节码就可以在该平台上运行。其屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行】。

JRE(Java Runtime Environment),Java运行环境,用于运行Java的字节码文件,包含Java虚拟机、库函数、运行Java应用程序所必须的文件。

JDK(Java Development Kit),Java开发工具包,包含JRE,以及增加编译器和调试器等用于程序开发的文件。是整个JAVA的核心。

联系:

JVM不能单独搞定.class的执行,解释.class的时候JVM需要调用解释所需要的类库lib。在JDK下面的JRE目录里面有两个文件夹bin和lib,在这里可以认为bin就是JVM,lib中则是JVM工作所需要的类库,JVM+lib=JRE。总体来说,就是我们利用JDK(调用Java Api)开发了属于我们自己的Java程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成Java字节码,在JRE上运行这些java字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

区别:

JDK和JRE区别

JDK用于开发,是给开发人员用的;JRE用于运行java程序,和JVM是给普通用户使用的。如果只是运行Java程序,可以只安装JRE,无需安装JDK。也就是说:使用JDK开发完成的java程序,交给JRE去运行。

在bin文件夹目录下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将.java文件编译成.class文件的,这是开发者需要的,而用户(运行程序的人)是不需要的。JDK还有jar.exe,javadoc.exe等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境。

JRE和JVM区别

JVM并不代表就可以执行.class了,JVM执行.class还需要JRE下的lib类库的支持,尤其是rt.jar。

三者之间的关系:

JDK包含了JRE,JDK和JRE都包含了JVM。也可以说JDK是JRE+Java的开发工具。JRE包含了JVM+Java语言的核心类库。

  • JDK: javac,jar,debugging,tools,javap
  • JRE:java,javaw,libraries,rt_jar
  • JVM:just in Time Compiler(JIT)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值