当前位置 博文首页 > 立志欲坚不欲锐,成功在久不在速度:JAVA - JDK、JVM、JRE 是什
前言:? ?前段时间就已经安装了JAVA,也学习了一段时间的Java的基础知识,有些词一直出现眼前,但是也从来没有去搞清楚这些东西的作用,今天就来学习一下关于?JAVA中的?JDK、JVM、JRE?
? ? ? ? ? ?是整个java实现跨平台最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,class并不会直接和电脑的操作系统对应,而是通过虚拟机间接的和操作系统交互,我们都知道Java是跨平台的,其实是它的JVM能够跨平台。
?
? ? ? ? ?JRE是java运行环境,并不是开发环境。? 光有JVM还不能使class的执行,因为在解释class的时候JVM需要调用解释需要的类库lib,我们在安装了JDK之后在目录中可以发现jre?目录,jre里面有两个文件夹 bin?和?lib ,这里我们可以把bin就认为是JVM ,
而lib中则放着JVM工作需要的类库,而jvm和lib合起来就称为JRE 。?
? ? ? ? 所以,我们在写完java程序后,编译成.class?文件后,可以把这个文件?和 jre?一起打包发给朋友,这样就可以运行我们的程序了
? ? ? ? ? ??Java 开发工具包。jdk 是整个 Java 开发的核心,它集成了 jre 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。
? ? ? ? ? ?总的来说JDK是用于java程序的开发,而jre则是只能运行class而没有编译的功能。
JVM不能单独完成class文件的执行,解释class文件的时候JVM需要调用解释需要的类库lib。在JDK下面的jre目录里有两个文件夹bin和lib,可以认为bin里面就是jvm? lib中是jvm工作需要的类库,jvm和lib联合起来就是JRE
总体来说就是,我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
?
cs