JVM、JRE和JDK之间的关系


下图为JDK8开发指南中Java概念图:
JDK8中Java概概念图

什么是JVM?

JVM(Java Virtual Machine),即Java虚拟机,是一种用于计算设备的规范,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
JVM是Java实现跨平台最核心的部分,编译后的字节码(即.class文件),在不同系统的JVM执行,其结果是相同的(即“一次编译,到处运行”),是因为JVM针对不同系统有特定实现。

什么是JRE?

JRE(Java Runtime Environment,Java运行环境),包括Java虚拟机(JVM)、Java核心类库和支持文件,但不包含开发工具(编译器、调试器和其他工具)。只是运行使用Java程序,安装JRE即可,但并不是绝对的。项目不只是Java程序,例如JSP文件,Tomcat编译时需要JDK支持。

什么是JDK?

JDK(Java Development Kit),Java开发工具包,是整个Java开发的核心,包含了JRE(Java运行时环境)和Java工具(如javac编译器、javadoc文档生成器等)。如下图所示:在这里插入图片描述

JDK的目录结构

  • bin目录:JDK开发工具的可执行文件,如:java.exe、编译器javac.exe、文档生成器javadoc.exe等等
  • include目录:包含C语言头文件,支持Java本地接口与Java虚拟机调试程序接口的本地编程技术
  • jre目录:Java运行时环境,包含Java虚拟机、Java核心类库,但不包含开发工具
  • lib目录:Java开发工具所用类库,包含支持JDK工具的核心类库,tools.jar、dt.jar等等
  • COPURIGHT文件:版权信息
  • src.zip:Java类库源码

JRE的目录结构

在这里插入图片描述

  • bin目录:Java平台使用的工具和库可执行文件及DLL
  • lib目录:Java运行时环境使用的类库、配置文件和资源文件等

Java为什么可以跨平台,实现一次编写,多处运行?

Java能过跨平台的核心在于JVM。不同的操作系统向上的API肯定存在差异的,JVM针对不同的操作系统有特定实现。JVM识别字节码后,根据不同系统的JVM实现,映射到不同系统的API调用,从而实现代码不修改即可跨平台运行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值