diff between JVM and JRE
JVM(Java虚拟机)和JRE(Java运行时环境)之间的区别是什么?这个问题的出现是因为对JVM和JRE的定义和作用不清楚。我们知道JVM是一个规范,它定义了一套运行Java字节码的规则和指令集。而JRE是JVM的实际实现,它包含了Java的API和JVM,用于在特定的操作系统上运行Java程序。
JVM是一个规范,它并不能运行任何东西,它只是定义了一套运行Java字节码的规则和指令集。不同的厂商可以根据JVM的规范实现自己的JVM,比如Oracle实现了自己的JVM。而JRE是JVM的实际实现,它是由JVM和Java的API组成的,用于在特定的操作系统上运行Java程序。
当我们说“JVM运行字节码”时,实际上是指JRE在特定的操作系统上运行Java字节码。JVM只是一个规范,而JRE是JVM的实际实现。不同的厂商可以根据JVM的规范实现自己的JRE,以在不同的操作系统上运行Java程序。
总结一下,JVM是一个规范,定义了一套运行Java字节码的规则和指令集。而JRE是JVM的实际实现,包含了JVM和Java的API,用于在特定的操作系统上运行Java程序。不同的厂商可以根据JVM的规范实现自己的JRE,以在不同的操作系统上运行Java程序。
JVM与JRE之间的区别
Java虚拟机(JVM)是运行Java字节码的虚拟机。JVM无法理解Java的源代码,因此需要将*.java文件编译为包含字节码的*.class文件,这些字节码可以被JVM理解。JVM也是使Java成为“可移植语言”(一次编写,到处运行)的实体。实际上,JVM有针对不同系统的特定实现(如Windows,Linux,MacOS等),其目的是通过相同的字节码来获得相同的结果。
JDK和JRE之间的区别在于:
Java运行时环境(JRE)提供了库、Java虚拟机和其他组件,用于运行用Java编程语言编写的小程序和应用程序。此外,JRE还包含两个关键的部署技术:Java插件,可以在常见的浏览器中运行小程序;以及Java Web Start,可以通过网络部署独立应用程序。它还是Java 2 Platform,企业版(J2EE)中用于企业软件开发和部署的技术的基础。JRE不包含用于开发小程序和应用程序的编译器或调试器等工具和实用程序。
Java开发工具包(JDK)是JRE的超集,包含了JRE中的所有内容,以及用于开发小程序和应用程序的编译器和调试器等工具。
JVM是运行Java字节码的虚拟机,JRE提供了运行Java程序所需的组件,而JDK是JRE的扩展,包含了开发Java程序所需的编译器和调试器等工具。
参考链接:
1. http://www.javabeat.net/what-is-the-difference-between-jrejvm-and-jdk/