简述JDK、JRE、JVM

1、JDK:JDK(Java Development Kit) 是整个JAVA的核心, 包括了Java运行环境JRE(Java Runtime Envirnment)、 Java开发需要的所有工具(如javac/java/jdb等) 和Java的基础类库(即Java API )。 JDK是java开发工具包, 基本上每个学java的人都会先在机器 上装一个JDK, 在JDK的目录下面有六个文件夹、 一个src类库源码压缩包、 和其他几个声明文件。 其中,真正在运行java时起作用的是以下四个文件夹:bin、include、lib、 jre。 有这样一个关系,JDK包含JRE,而JRE包 含JVM。 bin:最主要的是编译器(javac.exe) ;include:java和JVM交互用的头文件 ;lib:类库; jre:java运行环境。

2、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才能运行。

3、JVM(Java Virtual Machine), 即java虚拟机, java运行时的环境, JVM是一种用于计算设备的规范, 它是一个虚构出来的计算机, 是通过在实际的计算机上仿真模拟 各种计算机功能来实现的。 针对java用户, 也就是拥有可运行的.class文件包(jar或者war)的用户。 里面主要包含了jvm和java运行时基本类库(rt.jar)。 rt.jar可以简单粗暴地理解为: 它就是java源码编译成的jar包。 Java虚拟机在执行字节码时, 把字节码解释成具体平台上的机器指令执行。 这就是Java的能够“一次编译, 到处运行”的原因。

4、JDK、JRE、JVM三者的联系和区别

三者的联系:JVM不能单独搞定class的执行, 解释class的时候JVM需要调用解释所需要的类库lib。 在JDK下面的的jre目录里面 有两个文件夹bin和lib, 在这里可以认为bin里的就是jvm, lib中则是jvm工作所需要的类库, 而jvm和 lib和起来就称为jre。 JVM+Lib=JRE。 总体来说就是, 我们利用JDK(调用JAVA API)开发了属于 我们自己的JAVA程序后, 通过JDK中的编译程序(javac) 将我们的文本java文件编译成JAVA字节码, 在JRE上运行这些JAVA字节码, JVM解析这些字节码, 映射到CPU指令集或OS的系统调用。

三者的区别:JDK和JRE区别: 在bin文件夹下会发现, JDK有javac.exe而JRE里面没有, javac指令是用来将java文件编译成class文件的, 这是开发者需要的, 而用户(只需要运行的人)是不需要的。 JDK还有jar.exe, javadoc.exe等等用于开发的可执行指令文件。 这也证实了一个是开发环境, 一个是运行环境。 JRE和JVM区别: JVM并不代表就可以执行class了, JVM执行.class还需要JRE下的lib类库的支持, 尤其是rt.jar。



 





 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值