关于JDK,JRE,JVM的区别与联系(初步认识)

初步学习java,见到JDK,JRE,JVM一头雾水,通过参考书本和博客对三者有了如下的一个初步认识

JDK(java development kit)编译环境。Java 开发工具包。JDK 是整个 Java 开发的核心,它集成了 JRE 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。JDK包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

通常在安装好JDK之后,JRE也会自动安装好
 

JRE (java runtime environment)运行环境。负责装载用户自定义的类(分为从本地装载和从网络装载两种)和java API类。

JVM (java virtual machine)平台软件,负责将字节码解释成机器码并提交操作系统执行。换句话说,JVM就是Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。jvm调用解释所需的类库lib,而jre包含lib类库。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行(跨平台性:不同的浏览器安装不同的java虚拟机,jvm将字节码与对应操作系统相映射,达到java程序的跨平台性)。

简单来说三者的关系是:JDK>JRE>JVM。

JDK包含JRE,JRE包含JVM

联系与区别:

1>>.我们利用JDK写了自己的JAVA代码程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
2>>.JDK和JRE区别:在bin文件夹下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户(只需要运行的人)是不需要的。JDK还有jar.exe, javadoc.exe等等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境。jdk是给开发人员使用的,jre和jvm是给普通用户使用。
3>>.JRE和JVM区别:JVM并不代表就可以执行class了,JVM执行.class还需要JRE下的lib类库的支持(rt.jar)。


在此感谢:CSDN博主「会飞地太阳」的原创文章
原文链接:https://blog.csdn.net/duan196_118/article/details/104208833

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值