面试基础-- JDK、JRE、JVM
面试基础-- 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相关推荐
- day01--java基础编程:计算机基础知识 ,java语言概述,java开发环境搭建,eclipse概述,创建简单java项目,JDK JRE JVM的关系,java开发中的命名规范,编程风格
1 Day01–Java开发环境+HelloWorld 1.1 计算机基础知识 资料下载网址:刘沛霞 18600949004 code.tarena.com.cn tarenacode code_20 ...
- java基础 DK JRE JVM 关系 JDK 下载和安装
一 JDK JRE JVM 关系 二 JDK 下载和安装 下载JDK7 JDK的全称是JavaSE Development Kit,即java开发工具包,是sun公司提供的一套用于开发java应用程序 ...
- JDK,JRE,JVM区别与联系
很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...
- jdk jre jvm 关系
很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...
- 名词解释 JDK JRE JVM
名词解释 JDK JRE JVM JRE JRE: Java Runtime Environment JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库.是使用java语言编写 ...
- AJPFX关于JDK,JRE,JVM的区别与联系
很多朋友可能跟我一样,对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天我们来整理下三者的关系.JDK : Java Development ToolKit(Java开发工具包). ...
- jdk jre jvm的关系
http://blog.csdn.net/gaopeng0071/article/details/9914683 JDK : Java Development ToolKit(Java开发工具包).J ...
- JDK/JRE/JVM之间的关系
> JDK Java Development ToolKit(Java开发工具包). JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆J ...
- Path环境变量是什么?有什么用?怎么工作?JDK,JRE,JVM,集成开发工具是什么?有什么用?怎么工作?JDK安装包文件结构?有必要设置Path环境变量?Eclipse和IDEA开发工具的运作
简介 本文主要讲述,Path环境变量是什么?有什么用?怎么工作的?JDK,JRE,JVM,集成开发工具是什么?有什么用?怎么工作的?JDK安装包文件结构?有没有必要设置Path环境变量?Eclip ...
最新文章
- Xamarin 2017.9.13发布更新
- python类有什么用_python 定制类 有什么用
- leetcode —— 877. 石子游戏
- Maven实战. 3.7NetBeans Maven插件简单使用
- Java基础知识强化21:Java中length、length()、size()区别
- 使用Object.prototype.toString判断数据类型
- java hibernate 插入数据_hibernate 批量插入数据
- 闹钟流程_国际航班流程全攻略(中转+不同航空公司+中转换机场+航班变动)
- 操作系统教程(第6版) 预习笔记
- 笔记本中的insert,idea中Alt + insert快捷键在笔记本中怎么输入
- KeyError问题求助
- 统计出各分数段的人数
- 移动安全办公的难点在哪?
- 金蝶首席用户体验官对“用户体验”的思考
- bzoj2733 永无乡
- 数学之美:拼音输入法的数学原理
- 台式计算机虚拟内存怎么设置,电脑虚拟内存怎么设置
- LM324运放电路图讲解,详细解读LM324引脚图及功能,几分钟就搞懂
- laravel 链接多库方案
- 还在做创业梦?醒醒!
热门文章
- equipment download和CRM 的change history
- 打印出系统所有即未被assign到business transaction和IBASE component的product ID列表
- SAP CRM PPR调试截图,头都搞大了,希望这问题这辈子只遇到这次
- Linux系统下区别对比(~、/home与/root)
- java关于泛型的实验代码_[ Java学习 ] 泛型类的应用实验
- python3.8.2中文手册chm_springboot2.2.X手册:构建全局唯一的短链接数据中心
- linux是32还是64位,如何看linux是32位还是64位
- 桔梗网导航怎么取消_货车从业资格证考试正式取消?交通部最新回复!
- 一维信号双边滤波器_定义图上的各向异性、动态、频谱和多尺度滤波器
- htmlselect保留上次选择内容_中药口服液药液性质与过滤器械选择