JDK,JRE,JVM差别与接洽(zz)
添加时间:2013-8-12 点击量:
很多伴侣可能跟我一样,已经应用JAVA开辟好久了,可是对JDK,JRE,JVM这三者的接洽与差别,一向都是模模糊糊的。
今天特写此文,来收拾下三者的关系。
JDK : Java Development ToolKit(Java开辟对象包)。JDK是全部JAVA的核心,包含了Java运行景象(Java Runtime Envirnment),一堆Java对象(javac/java/jdb等)和Java根蒂根基的类库(即Java API 包含rt.jar)。
最主流的JDK是Sun公司公布的JDK,除了Sun之外,还有很多公司和组织都开辟了属于本身的JDK,例如国外IBM公司开辟了属于本身的JDK,国内淘宝也开辟了属于本身的JDK,各个组织开辟本身的JDK都是为了在某些方面获得一些进步,以适应本身的需求,比如IBM的JDK据说运行效力就比SUN的JDK高的多。但不管怎么说,我们还是须要先把根蒂根基的Sun JDK把握好。
JDK有以下三种版本:
J2SE,standard edition,标准版,是我们凡是用的一个版本J2EE,enterpsise edtion,企业版,应用这种JDK开辟J2EE应用法度J2ME,micro edtion,首要用于移动设备、嵌入式设备上的java应用法度
我们经常用JDK来代指Java API,Java API是Java的应用法度接口,其实就是进步前辈们写好的一些java Class,包含一些首要的说话布局以及根蒂根基图形,收集和文件I/O等等 ,我们在本身的法度中,调用进步前辈们写好的这些Class,来作为我们本身开辟的一个根蒂根基。当然,如今已经有越来越多的机能更好或者功能更强大的第三方类库供我们应用。
JRE:Java Runtime Enviromental(java运行时景象)。也就是我们说的JAVA平台,所有的Java法度都要在JRE下才干运行。包含JVM和JAVA核心类库和支撑文件。与JDK比拟,它不包含开辟对象——编译器、调试器和其它对象。
JVM:Java Virtual Mechinal(JAVA虚拟机)。JVM是JRE的一项目组,它是一个虚构出来的策画机,是经由过程在实际的策画机上仿真模仿各类策画机功能来实现的。JVM有本身完美的硬件架构,如处理惩罚器、客栈、存放器等,还具有响应的指令体系。JVM 的首要工作是申明本身的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的体系调用。Java说话是跨平台运行的,其实就是不合的操纵体系,应用不合的JVM映射规矩,让其与操纵体系无关,完成了跨平台性。JVM 对上层的 Java 源文件是不关怀的,它存眷的只是由源文件生成的类文件( class file)。类文件的构成包含 JVM 指令集,符号表以及一些补贴信息。
下图很好的概况了JDK,JRE,JVM三者间的关系:
我们开辟的实际景象是:我们哄骗JDK(调用JAVA API)开辟了属于我们本身的JAVA法度后,经由过程JDK中的编译法度(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的体系调用。
我俩之间有着强烈的吸引力。短短几个小时后,我俩已经明白:我们的心是一个整体的两半,我俩的心灵是孪生兄妹,是知己。她让我感到更有活力,更完美,更幸福。即使她不在我身边,我依然还是感到幸福,因为她总是以这样或者那样的方式出现在我心头。——恩里克·巴里奥斯《爱的文明》