详解Java中的JDK、JRE、JVM
作者:%阳阳羊% 发布时间:2023-07-10 04:38:50
JDK、JRE、JVM
JDK包含JRE,而JRE包含JVM
JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。
JDK
JDK是Java开发工具包,是Sun Microsystems针对Java开发员的产品。
JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和>起来就称为jre。
JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括>rt.jar)。
Java Runtime Environment(JRE)
JRE是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。
JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些是运行Java程序的必要组件。
与JDK不同,JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。
JVM
JVM是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
只有JVM还不能产生class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
来源:http://www.cnblogs.com/Onlywjy/p/6328383.html


猜你喜欢
- 有哪些“纪律”是Java程序员所要遵守的?1. 为代码添加注释(Add comments to your code). – 每个人都知道这一
- C#2.0引入了泛型这个特性,由于泛型的引入,在一定程度上极大的增强了C#的生命力,可以完成C#1.0时需要编写复杂代码才可以完成的一些功能
- 本文实现初次设置密码验证过程,首先实现如下效果布局如下:<?xml version="1.0" encoding=
- 在JVM中,每个对象都关联一个监视器,这里的对象包含Object实例和Class实例。监视器是一个同步工具,相当于一个许可证,拿到许可证的线
- 如果有人对程序的崩溃原因做下统计的话,那么由于对象为空,但是又访问了对象的某个属性而导致的崩溃,也许会是程序崩溃的第一大原因了。比如我们在使
- 今天看了一下数据结构,一个练习就是构建哈夫曼树,就顺手用C#写了一个。static void Main(string[] args){ &n
- 讲这个例子前,咱们先来看一个简单的程序:字符串数组实现数字转字母:#include <stdio.h>#include <
- 前言总是觉得对HashMap很熟悉,但最近连续被问到几个关于它的问题,才发现它其实并不简单。这里对关于它的一些问题做个总结,也希望能够大家一
- spring和mybatis整合整合思路需要spring通过单例方式管理SqlSessionFactory。spring和mybatis整合
- 一、线程组 /** * A thread group represents a set of threads. In addition,
- 在我们平时的开发中会经常用到Image控件,通过设置Image控件的Source属性,我们可以加载图
- 本文主要介绍了java8 stream自定义分组求和并排序的实现,分享给大家,具体如下: public static void
- 自定义starterSpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进 starter,应用
- 本文实例为大家分享了Android多媒体之画画板开发的具体代码,供大家参考,具体内容如下先看看效果:其实画画板的原理很简单,就是首先记录下按
- 在本篇博文中,我们主要讲解一下 IntelliJ IDEA 安装目录中的一些核心文件的功能及用法:如上图所示,我们定位到了 IntelliJ
- 如果你想知道java annotation是什么?你可以先看看:“http://www.infoq.com/articles/Annotat
- 本文实例为大家分享了C#实现俄罗斯方块的具体代码,供大家参考,具体内容如下1.调色板代码namespace Tetris{ class Pa
- 相信大家对 String 和 StringBuffer 的区别也已经很了解了,但是估计还是会有很多同志对这两个类的工作原理有些不清楚的地方,
- 目录第一种方式第二种方式第三种方式第四种方式(缺点:将所有的数字类型都会转为字符串)web项目中,Java后端传过来的Long/long类型
- 多数据源创建数据库CREATE DATABASE mybatis_plus_1;USE mybatis_plus_1;CREATE TABL