一 、JVM
JAVA虚拟机(JVM)是运行java字节码的虚拟机 。 JVM有针对不同系统的特定(Windows/Linus/macOS),目的是使用相同的“字节码”,它们都会给出相同的结果 。
什么是字节码及采用字节码的好处
在Java中,JVM可以理解的代码就叫做字节码(即扩展名为 .class的文件),它不面向任何特定的处理器,只面向虚拟机。
Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以Java程序运行时比较高效,而且,由于字节码并不转对一种特定的机器,因此,Java程序无需重新编译便可在多种不同的计算机上运行。
总结:
Java虚拟机(JVM)是运行Java字节码的虚拟机。JVM有针对不同系统的特定实现(Windows/LInux/macOS),目的是使用相同的字节码,它们都会给出相同的结果。字节码和不同系统的JVM实现是Java语言“一次编译,随处可以运行”的关键所在。
二、JDK和JRE
1)JDK是Java Development Kit ,它是功能齐全的Java SDK。它拥有JRE所拥有的一切,还有编译器(javac)和工具(如Javadoc和jdb)。它能够创建和编译程序。
2)JRE是Java运行时的环境。它是运行已编译Java程序所需的所有内容的集合,包括Java虚拟机(JVN),Java类库,Java命令和其他的一些基础构件。但是,他不能创建新程序。
总结:
如果只运行Java程序,只需安装JRE即可。如果需要Java编程,就需要安装JDK。但是,这不是绝对的。有时,即使不进行Java开发,仍需要安装JDK。例如,如果要使用jsp部署web应用程序,那么从技术上讲,你只是在应用程序服务器中运行Java程序。那为什么还需要JDK呢?因为应用程序服务器会将JSP抓换为Java Servlet,并且需要使用JDK来编译servlet。