jdkjrejvm的区别和联系(jdk jre jvm 的区别和联系)

本篇文章给大家谈谈jdkjrejvm的区别和联系,以及jdk jre jvm 的区别和联系对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

jdk和jre有什么区别?

JDK:

Java Develpment Kit java 开发工具

JRE:

Java Runtime Environment java运行时环境

JVM:

java Virtual Machine java 虚拟机

jdk 是给开发人员使用的, jre和jvm是给普通用户使用,如果只凯信是运行Java程序,安装JRE即可

JDK:

是java开发工具包,是Sun公司针对java开发人员的产品,jdk中包含jre,在jdk的安装目录下有一个jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里面就是jvm,lib中是盯弊轮java工作需要的卜卜类库,而java和lib合起来就称为jre

JDK(Java Development Kit) 是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

[img]

jdk,jre,jvm三者分别表示什么,有何区别

JDK:给程序开FA者提友绝供的开发工具箱,它除了包括完整的JRE,Java运行环境,还包含了其他供开FA者使用的工具包。

JRE:普通用户用来安装运行java,而程序员则要用JDK来编译好早姿、调试程序。

JVM:这是负责在运行程序时将字节转换成特定的机器代码,并且还有内存管理和垃圾回收的机制。

区别:

1、JDK用于开发,JRE用于运行java程序 ;

2、JDK和JRE中都包含JVM ;

3、JVM是java编睁歼程语言的核心并且具有平台的独立性。

JVM,JDK和JRE有什么区别?它们的联系是什么?

引言:在选择编程语谈团言的时候,有一些人会选择Java,Java在书写和制作的过程中所包含的内容还是比较多的,java中有三个比较常见的名词,分别是jvm、jdk、jre那么这三者有什么区别呢?之间的联系是怎么样的呢历陪?

三者之间的区别和联系

当自己运行一段程序的时候,最先是由gvm进行操作的,这是Java的一个虚拟的运行工具,目的就是为了处理自己所写的代码。而GRE是一个运行环境,也就是说有这个运行环境,将jvm所转换出来的代码运行出来。 JDK就是Java的一个软件开发工具包,这个软件开发工具包里面就包含了很多的子目录,包括一些提供的类以及jvm和GRE。所以可以说JDK包含了JRE和JVM,而JRE又包含了JVM。通过这样的方式来理解这三者到底是有什么样的区别,不过这些只是理解了Java这个编程语言的底层逻辑。实际上在学习的过程中想要深入了解的话,还要了解这个的编程语言。

编程开发的学习

在学习编程开发的时候,最基本的原理一般都是不变的,老师学习哪个病菌炎就可以看到这些病菌炎在运用的过程中所了解,以及所搭建的基础都是一样的,毕竟编程语言是编程语言,计算机语言是计算机,语言,计算机如果能够读懂的话要把这些语言变换成计算机语言的。另外就是要注意开发,其实是一个非常底层的工作,毕竟了解这门语言,使用这门语言就像人们会说话一样,但是怎么能够创造出一种思维,这就是算法的研究了。

总结

学习Java是一个非常不错的选择,不过学习的过程中应该注意自己的学习进度并且及时的督促自己,才能够保证自己是能够学习好的,所以在日常生活中还是要多含烂橘做总结和分析,从而能够保证自己是能够有效的学习JAVA的。

JRE与JVM、JDK的区别

jre是java的运行环境,jdk是java的开发工具包,jvm则是让咐慎毁java能够在任何平孝亩台运行的虚拟机。其中关系是jdk包含jre和tools(工具类),而jre下衡备包含类库和jvm

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 runtime 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 Runtime 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。

      bin:最主要的是编译器(javac.exe)

      include:java和JVM交互用的头文件

      lib:类库

      jre:java运行环境

(注意:这里的bin、lib文件夹和jre里的bin、lib是 不同的)总的来说JDK是用于java程序的开发,而jre则 是只能运行class而没有编译的功能。

      eclipse、idea等 其他IDE有自己的编译器而不是用JDK bin目录中自带的,所以在安装时你会发现他们只要求你 选中jre路径就ok了。

    三者联系

     Java 喊出的带有标志性的口号“ Write Once , Run Anywhere (一次编写,到处运行)”,正是建立在 JRE 的基础之上。何以实现?就是在 Java 应用程序和操作系统之间增加了一虚拟层—— JRE 。

      程序源代码不是直 接编译、链接成机器代码,而是先转化到字节码( bytecode ) 这种特殊的中间形式,字节码再转换成机器码或系统调用。前者是传统的编译方法,生成的机器代码就不可避免地跟特殊的操作系统和特殊的机器结构相关。

而 Java 程序的字节码文件可以放到任意装有 JRE 的计算机运行,再由不同 JRE 的将它们转化成相应的机器代码,这就实现了 Java 程序的可移植性。这样程序员也不用去 关心程序运行的具体环境,而可以专心编写软件。这种分层抽象、隐藏细节的思想在计算机科学中处处可见,比如机器组织结构的设计、网络协议的实现等。 Pascal 语言的发明者 Niklaus Wirth ,就富有预见性地指出应该有这样一种可移植的语言,其生成的中间代码可以在一台假想的机器( a hypothetical machine )上运行。

而 Java 虚拟机( Java virtual machine 或 JVM )就是这样的一台机器,它模拟实际处理器的结构,解释字节码。 怎么一会说是 JRE ,一会儿又成了 JVM ,两者是否同物不同名? 回答是否定的。

       JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮 我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。

要运行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去掉了.

什么是JDK、JRE、JVM,以及他们之间的关系是什么

如果安装了JDK,会发同你的电脑有两套JRE,一套位于JDK安装目录\jre,另外一套位于C:\ProgramFiles\Java\jre1.5.0_02目录下。后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于C:\ProgramFiles\Java目录下的JRE。

如果你只安装JRE,而不是JDK,那么只会在C:\ProgramFiles\Java目录下闷裂穗安装唯一的一套JRE。JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。

所以当你装完JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的JavaPC机,都具有运行Java程序的功能。所以我们可以说,只要你的电脑安装了JRE,就可以正确运行Java应用程序。

1、为什么Sun要让JDK安装两套相同的JRE?这是因为JDK里面有很多用Java所编写的开发工具(如javac.exe、jar.exe等),而且都放置在JDK安装目录\lib\tools.jar里。

从下面例子可以看出,先将tools.jar改名为tools1.jar,然后运行javac.exe,显示如下结果:Exceptioninthread"main"java.lang.NoClassDefFoundError:com/sun/tools/javac/Main这个意思是说,你输入javac.exe与输入java-cpc:\jdk\lib\tools.jarcom.sun.tools.javac.Main是一样的,会得到相同的结果。

从这里我们可以证明javac.exe只是一个包装器(Wrapper),而制作的目的是为了让开发者免于输入太长的指命。而且可以发现JDK安装目录\lib目录下的程序都很小,不大于29K,从这里我们可以得出一个结论蚂卜。就是JDK里的工具几乎是用Java所编写,所以也是Java应用程序,因此要使用JDK所附的工具来开发Java程序,也必须要自行附一套JRE才行,所以位于C:\ProgramFiles\Java目录下的那套JRE就是用来运行一般Java程序用的。

2、如果一台电脑安装两套以上的JRE,谁来决定呢?这个重大任务就落在java.exe身上。Java.exe的工作就是找到合适的JRE来运行Java程序。

Java.exe依照底下的顺序来查找JRE:自己的目录下有没有JRE;父目录有没有JRE;查询注册表:[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JavaRuntimeEnvironment]所以java.exe的运行结果与你的电脑里面哪个JRE被执行有很大的关系。

3、介绍JVMJRE目录下的Bin目录有两个目录:server与client。这就是真正的jvm.dll所在。jvm.dll无法单独工作,当jvm.dll启动后,会使用explicit的方法(就是使用Win32API之中的LoadLibrary()与GetProcAddress()来载入辅助用的动态链接库),源举而这些辅助用的动态链接库(.dll)都必须位于jvm.dll所在目录的父目录之中。因此想使用哪个JVM,只需要设置PATH,指向JRE所在目录底下的jvm.dll。

看了上面的介绍您应该了解了三者之间的关系:JDKJREJVM

关于jdkjrejvm的区别和联系和jdk jre jvm 的区别和联系的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表