深度剖析JDK/JRE/JVM三者的区别

开发 后端
这里向大家简单介绍一下jdk,jre,jvm三者的区别和联系,三者的关系可以与PC,操作系统,硬件之间的关系做比较,比如JRE相当于PC,JVM就相当于PC中的硬件,而DK只是一个编写各种程序或者Java类库的工具。

你对jdk,jre,jvm三者的区别和联系是否了解,这里和大家分享一下, j2sdk(Software Development Kit for Java 2) ,简称JDK.它包括了JDK(Java Development Kit),JRE(Java Runtime Environment),Java Plug-in. JDK即Java开发工具包. JDK是一组API,也可以说是一些java Class。

jdk,jre,jvm区别

   ◆ j2sdk(Software Development Kit for Java 2) ,简称JDK.它包括了JDK(Java Development Kit),JRE(Java Runtime Environment),Java Plug-in. JDK即Java开发工具包. JDK是一组API,也可以说是一些java Class。JDK是一切java应用程序的基础,所有的java应用程序都构建在这个之上的。位于"Java安装目录\jdk1.5.0_07".

    ◆JRE ( Java Runtime Environment ),是运行 Java 程序必不可少的(除非用其他一些编译环境编译成.exe可执行文件……),JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。所以当你装JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的Java   PC机,都具有运行Java程序的功能。所以我们可以说,只要你的电脑安装了JRE,就可以正确运行Java应用程序。JRE里面有一个 JVM , JRE 与具体的 CPU 结构和操作系统有关,我们从 Sun 下载 JRE 的时候就看到了不同的各种版本,,同 JVM 一起组成 JRE 的还有一些 API (如 awt , swing 等), JRE 是运行 Java 程序必不可少的.

    ◆JVM 是 Java 平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行时操作不同的内存区域。 JVM 通过抽象的操作系统和 CPU 结构,提供了一种与平台无关的代码执行方法,即与特殊的实现方法、主机硬件、主机操作系统无关。但是在一些小的方面, JVM 的实现也是互不相同的,比如垃圾回收算法,线程调度算法(可能不同 OS 有不同的实现)。 JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用,保护用户免被恶意程序骚扰。 JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file )。类文件的组成包括 JVM 指令集,符号表以及一些补助信息。

    要运行Applet,在客户端必须安装有 JRE,即“运行时”,容易一点理解,就象所谓的“插件”,要开发JAVA应用程序\Web应用,就必须在服务器端安装相应的 JVM+JDK 了(开发应用 Java web应用 时,客户端不需要安装任何的JVM)

    如果你使用JAVA开发应用,就需要安装 JRE+JDK,就是 J2SE.
 
    如果在客户端运行Applet,客户端浏览器必须嵌有JAVA JVM,如果没有,就需要安装,即:在客户端创建JRE(运行时,包含JVM),而客户端是不需要做开发的,所以,JDK就没有必要安装了不同版本的Applet在不同的JVM下可能无法正常运行,而Microsoft JVM只是Sun JVM的“低版本”,微软在windows xp/2003中干脆将JVM去掉了.

【编辑推荐】

  1. JVM、JRE、JDK的区别和联系
  2. 探究JVM1.6与JVM1.5性能差距
  3. JVM监控在本地和远程的应用
  4. JVM参数设置使用技巧
  5. JVM启动参数中标准参数列表速查手册
责任编辑:佚名 来源: blog.sina.com.cn
相关推荐

2010-09-27 11:32:41

JVMJREJDK

2010-09-26 14:13:31

JDKJREJVM

2010-09-25 14:58:12

JVMJDKJRE

2022-12-30 16:06:23

JDKJREJVM

2022-06-27 08:24:34

JDKJavaJRE

2009-06-25 14:46:50

JDKJREJVM

2011-05-20 13:45:30

Java

2011-06-15 10:28:37

Qt QWidget QMainWindo

2009-07-08 10:41:54

JDK JRE JVM

2009-07-08 17:59:51

JDK JRE

2024-01-07 12:02:55

URLURIURN

2022-02-15 20:08:41

JDKJavaWindows

2010-09-27 14:50:22

JDKJREJVM

2009-07-08 09:47:47

安装JDKJREJVM

2019-07-24 10:11:51

jdkjreJava

2019-12-06 08:17:25

SessionCookieToken

2009-06-18 15:27:42

Java SEJava EEJava ME

2010-02-05 15:33:29

Android JDK

2023-09-27 08:46:44

Java 技术编程语言

2017-09-18 17:00:02

前端URLURN
点赞
收藏

51CTO技术栈公众号