什么是 JVM?
jvm是 Java Virtual Machine(Java虚拟机)的缩写。
它是 java 运行时的环境,JVM 是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
针对 java 用户,也就是拥有可运行的.class 文件包(jar 或者 war)的用户。
里面主要包含了 jvm 和 java 运行时基本类库(rt.jar)。
rt.jar 可以简单粗暴地理解为:它就是 java 源码编译成的 jar 包。
Java 虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
这就是 Java 的能够“一次编译,到处运行”的原因。
- 实现跨平台的最核心的部分
- .class 文件会在 JVM 上执行,JVM 会解释给操作系统执行
- 有自己的指令集,解释自己的指令集到 cpu 指令集和系统资源的调用
- JVM 只关注被编译的 .class 文件,不关心 .java 源文件
什么是 JRE?
jre是 Java Runtime Environment(Java运行环境)的缩写
- 包含 JVM 标准实现及 Java 核心类库,这些是运行 Java 程序的必要组件
- 是 Java 程序的运行环境,并不是一个开发环境,没有包含任何开发工具(如编译器和调试器)
- 是运行基于 Java 语言编写的程序所不可缺少的运行环境,通过它,Java 程序才能正常运行
JRE(Java Runtime Environment,Java 运行环境),包含 JVM 标准实现及 Java 核心类库。JRE 是 Java 运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)。
JRE 是指 java 运行环境。光有 JVM 还不能完成 class 的执行,因为在解释 class 的时候 JVM 需要调用解释所需要的类库 lib。 (jre 里有运行.class 的 java.exe)。
JRE 是运行 Java 程序必不可少的(除非用其他一些编译环境编译成 .exe 可执行文件),JRE 的地位就象一台 PC 机一样,我们写好的 Win64 应用程序需要操作系统帮我们运行,同样的,我们编写的 Java 程序也必须要 JRE 才能运行。
什么是 JDK?
JDK 是 Java Development Kit(Java开发工具包)的缩写
里面包含了:jre、javac(源码的编译器)、jconsole(监控工具)、jvisualvm(分析工具)等等
JDK目录下的主要几部分:
- bin 最主要的是编译器 (javac.exe、java.exe)
- include java 和 JVM 交互用的头文件
- lib 类库
- jre java 运行环境
- src 类库源码压缩包
在jre目录里有两个文件夹:
- bin:可以认为是jvm
- lib:jvm工作所需要的类库。
总的来说 JDK 是用于 java 程序的开发,而 jre 则是只能运行 class 而没有编译的功能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。