面试基础-- JDK、JRE、JVM

(1)JDK、JRE、JVM之间的关系

(2)JRE和JDK
JDK(Java Development Kit)Java开发工具包,JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)Java虚拟机。JDK是面向开发者的,JRE是面向使用JAVA程序的用户,这只是简单区别

通过上图,有两个JRE文件夹,如果细看里面的内容基本上是一样的,如果是只是Java程序使用者,那么只会有最外层的那个JRE目录,JDK中是JRE自带的,如果安装了JDK,必然里面会有一个JRE.那么问题来了,为什么会有两套JRE呢?

  • dt.jar和tools.jar是两个java最基本的包,里面包含了从java最重要的lang包到各种高级功能如可视化的swing包,是java必不可少的。而path下面的bin里面都是java的可执行的编译器及其工具,如java,javadoc等
  • javac的命令不是去JDK中bin目录去找的javac.exe,而是去JDK中lib目录中的tools.jar中com.sun.tools.javac.Main中执行,因此javac.exe只是一个包装器(Wrapper),存在的目的是为了让开发者免于输入过长的指命
  • JDK里的工具几乎是用Java所编写,同属于Java应用程序,因此要使用JDK所附的工具来开发Java程序,所以自身需要附一套JRE才能运行
  • 上图中与jdk同级目录下的JRE就是用来运行一般Java程序用的

两套JRE运行的时候究竟运行哪一个呢,这个时候JDK中java.exe先从自身目录中找,然后父级目录中找,如果都没有就去注册表中找

注册表:win + R —》输入regedit

(3)JRE和JVM

JVM – java virtual machineJVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,class文件并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行,类似于C#中的CLR。

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

JVM+Lib=JRE,如果讲的具体点就是bin目录下的jvm.dll文件, jvm.dll无法单独工作,当jvm.dll启动后,会使用explicit的方法(就是使用Win32 API之中的LoadLibrary()与GetProcAddress()来载入辅助用的动态链接库),而这些辅助用的动态链接库(.dll)都必须位于jvm.dll所在目录的父目录之中。因此想使用哪个JVM,只需要设置PATH,指向JRE所在目录下的jvm.dll

面试基础-- JDK、JRE、JVM相关推荐

  1. day01--java基础编程:计算机基础知识 ,java语言概述,java开发环境搭建,eclipse概述,创建简单java项目,JDK JRE JVM的关系,java开发中的命名规范,编程风格

    1 Day01–Java开发环境+HelloWorld 1.1 计算机基础知识 资料下载网址:刘沛霞 18600949004 code.tarena.com.cn tarenacode code_20 ...

  2. java基础 DK JRE JVM 关系 JDK 下载和安装

    一 JDK JRE JVM 关系 二 JDK 下载和安装 下载JDK7 JDK的全称是JavaSE Development Kit,即java开发工具包,是sun公司提供的一套用于开发java应用程序 ...

  3. JDK,JRE,JVM区别与联系

    很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...

  4. jdk jre jvm 关系

    很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...

  5. 名词解释 JDK JRE JVM

    名词解释 JDK JRE JVM JRE JRE: Java Runtime Environment JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库.是使用java语言编写 ...

  6. AJPFX关于JDK,JRE,JVM的区别与联系

    很多朋友可能跟我一样,对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天我们来整理下三者的关系.JDK : Java Development ToolKit(Java开发工具包). ...

  7. jdk jre jvm的关系

    http://blog.csdn.net/gaopeng0071/article/details/9914683 JDK : Java Development ToolKit(Java开发工具包).J ...

  8. JDK/JRE/JVM之间的关系

    > JDK Java Development ToolKit(Java开发工具包). JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆J ...

  9. Path环境变量是什么?有什么用?怎么工作?JDK,JRE,JVM,集成开发工具是什么?有什么用?怎么工作?JDK安装包文件结构?有必要设置Path环境变量?Eclipse和IDEA开发工具的运作

    简介 ​ 本文主要讲述,Path环境变量是什么?有什么用?怎么工作的?JDK,JRE,JVM,集成开发工具是什么?有什么用?怎么工作的?JDK安装包文件结构?有没有必要设置Path环境变量?Eclip ...

最新文章

  1. Xamarin 2017.9.13发布更新
  2. python类有什么用_python 定制类 有什么用
  3. leetcode —— 877. 石子游戏
  4. Maven实战. 3.7NetBeans Maven插件简单使用
  5. Java基础知识强化21:Java中length、length()、size()区别
  6. 使用Object.prototype.toString判断数据类型
  7. java hibernate 插入数据_hibernate 批量插入数据
  8. 闹钟流程_国际航班流程全攻略(中转+不同航空公司+中转换机场+航班变动)
  9. 操作系统教程(第6版) 预习笔记
  10. 笔记本中的insert,idea中Alt + insert快捷键在笔记本中怎么输入
  11. KeyError问题求助
  12. 统计出各分数段的人数
  13. 移动安全办公的难点在哪?
  14. 金蝶首席用户体验官对“用户体验”的思考
  15. bzoj2733 永无乡
  16. 数学之美:拼音输入法的数学原理
  17. 台式计算机虚拟内存怎么设置,电脑虚拟内存怎么设置
  18. LM324运放电路图讲解,详细解读LM324引脚图及功能,几分钟就搞懂
  19. laravel 链接多库方案
  20. 还在做创业梦?醒醒!

热门文章

  1. equipment download和CRM 的change history
  2. 打印出系统所有即未被assign到business transaction和IBASE component的product ID列表
  3. SAP CRM PPR调试截图,头都搞大了,希望这问题这辈子只遇到这次
  4. Linux系统下区别对比(~、/home与/root)
  5. java关于泛型的实验代码_[ Java学习 ] 泛型类的应用实验
  6. python3.8.2中文手册chm_springboot2.2.X手册:构建全局唯一的短链接数据中心
  7. linux是32还是64位,如何看linux是32位还是64位
  8. 桔梗网导航怎么取消_货车从业资格证考试正式取消?交通部最新回复!
  9. 一维信号双边滤波器_定义图上的各向异性、动态、频谱和多尺度滤波器
  10. htmlselect保留上次选择内容_中药口服液药液性质与过滤器械选择