JRE,JVM,JDK之间的区别

JDK(Java Development Kit)

JDK包括开发java应用程序所需要的工具以及运行程序所需要的JRE,开发java应用程序所需要的工具包括编译器(javac.exe)、java应用程序启动器(java.exe)、Appletviewer、等等。编译器把java代码编译成字节码,java应用程序启动器(java.exe)打开一个JRE,然后,加载类文件以及引用它们的主方法。如果你想开发自己的应用程序并编译它们,你需要一个JDK,如果仅仅是运行java应用程序,JRE足矣,JRE是用来执行java文件的,JRE=JVM+java包文件(比如util、math、lang、awt、swing等)+运行库。JDK主要使用的开发人员,比如在java类库的帮助下创建一个java文件,编译这个java文件,然后运行这个java文件,你则需要一个JDK。

JRE(Java Runtime Environment)

JRE包括JVM、类库、以及其他支持文件,它不包含任何的开发工具,比如编译器、调试器等。实际上,JVM使用JRE里面的类库和支持文件来运行应用程序。如果你需要运行java程序,在你的系统里面安装JRE就可以了。JVM提供了一个与平台无关的执行代码的环境,开发者只需要关注于写相应的软件,不用关心你写的东西要在哪里运行以及它的运行方式。

JVM(Java Virtual Machine)

我们编译一个java文件之后,得到的不是一个exe文件,而是一个.class文件,这个.class文件由JVM可以识别的java字节码组成。在JVM把字节码解释成机器码的时候,依赖于它所运行的硬件环境和操作系统。不同环境的垃圾回收、数据越界检查等信息是不一样的,所以说,JVM是平台依赖的。

JVM为什么称之为虚拟机?因为它提供了不依赖于操作系统和硬件环境的机器接口。正是这种对操作系统和硬件环境的不依赖,成就了编写一次,到处运行的java程序。JVM不同的实现之间是有所不同的,比如性能、可靠性、速度等都可能有所不同。在java规范中,没有明确指出如何实现比如垃圾收集等特性,JVM实现者按照自己对产品以及自我的要求来实现相应的产品。

原文地址:http://www.javabeat.net/2013/02/what-is-the-difference-between-jrejvm-and-jdk/

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>