java复习--JDK JRE JVM
JDK是什么?JRE是什么?JDK和JRE的区别?
1. JDK是什么
jdk,Java Development kit,Java开发工具包
2. JRE是什么
Java Runtime Environment java 运行时环境(JRE)包含:
Java虚拟机、库函数、运行Java应用程序和Applet所必须文件。
JRE的超集,包含编译器和调试器等用于程序开发的文件
Java运行环境的三项主要功能:
- 加载代码:由class loader 完成;
- 校验代码:由bytecode verifier 完成;
- 执行代码:由 runtime interpreter完成。
3. JDK和JRE的区别
图里的SDk即JDK,JDK是JRE的超集,是在JRE的基础上增加了编译器及其他一些开发工具。
JRE就是java运行时环境,包括了JVM和其它一些java核心api,任何一台电脑,只有安装了JRE才可以运行java程序.
总结如下:
- 如果只是要运行JAVA程序,只需要JRE就可以。 JRE通常非常小,也包含了JVM。
- 如果要开发JAVA程序,就需要安装JDK。
4. JVM是什么
JVM是指在一台计算机上由软件或硬件模拟的计算机;它类似一个小巧而高效的CPU。JVM 是运行在操作系统之上的,它与硬件没有直接交互。JVM是一种规范,可以使用软件来实现,也可以使用硬件来实现,就是一个虚拟的用于执行bytecodes字节码的计算机。他也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。
JAVA的跨平台实现的核心是不同平台使用不同的虚拟机。我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。也就是如下:
- Java 源文件—->编译器—->字节码文件bytecodes
- 字节码文件—->JVM—->机器码
- 每一种平台的解释器是不同的,但是实现的虚拟机是相同的,这也就是 Java 为什么能够
跨平台的原因了 ,当一个程序从开始运行,这时虚拟机就开始实例化了,多个程序启动就会
存在多个虚拟机实例。程序退出或者关闭,则虚拟机实例消亡,多个虚拟机实例之间数据不
能共享。