黑马程序员技术交流社区
标题:
JDK,JRE,JVM分别是什么?
[打印本页]
作者:
yehua1026
时间:
2015-12-31 13:07
标题:
JDK,JRE,JVM分别是什么?
JVM
-- java virtual machine
JVM
就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可 以在虚拟机上执行,也就是说class并不直接与机器的
操作系统
相对应,而是经过虚拟机间接与
操作系统
交互,由虚拟机将程序解 释给本地系统执行。
JVM
是 Java 平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行 时操作不同的内存区域。 JVM 通过抽象
操作系统
和
CPU
结构,提供了一种与平台无关的代码执行方法,即与特殊的实现方 法、主机硬件、主机操作系统无关。但是在一些小的方面, JVM 的实现也是互不相同的,比如
垃圾回收
算法,线程调度算法(可能不同
OS
有不同的实现)。
JVM 的主要工作是解释自己的指令集(即字节码)到
CPU
的指令集或
OS
的系统调用,保护用户免被恶意程序骚扰。 JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file )。类文件的 组成包括 JVM 指令集,符号表以及一些补助信息。
JRE
-- java
run
time environment
JRE
是指java运行环境。光有JVM还不能成class的 执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。 在
JDK
的安装目 录里你可以找到
jre
目录,里面有两个文件夹
bin
和lib,在 这里可以认为
bin
里的就是jvm,lib中则是jvm工 作所需要的类库,而jvm和 lib和起来就称为jre。所以,在你写完java程序编译成.class之后,你可以把这个.class文件 和jre一起打包发给朋友,这样你的朋友就 可以运行你写程序了。(jre里有运行.class的java.exe)
JRE 是 Sun 公司发布的一个更大的系统,它里面就有一个 JVM 。 JRE 就与具体的
CPU
结构和操作系统有关,我们从 Sun 下载 JRE 的时候就看到了不同的各种版本。同 JVM 一起组成 JRE 的还有一些
API
(如 awt , swing 等)。 JRE 是运行 Java 程序必不可少的。
JRE ( Java
Run
time Environment ),是运行 Java 程序必不可少的(除非用其他一些编译环境编译成.exe可执行文件……),JRE的 地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮 我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。
JRE里面有一个 JVM , JRE 与具体的 CPU 结构和操作系统有关,我们从 Sun 下载 JRE 的时候就看到了不同的各种版本,,同 JVM 一起组成 JRE 的还有 一些
API
(如 awt , swing 等), JRE 是 运行 Java 程序必不可少的.
JDK
-- java development kit
JDK
是java开发工具包,基本上每个学java的人都会先在机器 上装一个JDK,那他都包含哪几部分呢?让我们看一下JDK的安装目录。在目录下面有 六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的 是以下四个文件夹:
bin
、include、lib、 jre。现在我们可以看出这样一个关系,JDK包含JRE,而JRE包 含JVM。
作者:
吕振廷
时间:
2015-12-31 19:39
这个学java都会知道了
作者:
小五哥
时间:
2015-12-31 19:59
就是就是,都懂的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2