JDK、JRE、JVM、JAVA跨平台
我相信每个刚接触Java的小白都对JDK、JRE、JVM、JAVA跨平台都特别敏感,经常能听到这些专业名词,可又偏偏弄不懂这些到底是啥玩意,接下来就让我好好给你们分析分析,希望能给你们带来一些帮助,少走一些弯路! ^ _ ^
一、首先我们先看看基本的官方介绍
JDK是什么?
JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。
然后我们来看JRE
JRE是什么?
JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)
JVM是什么?
JVM是(Java Virtual Machine Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的
简单来讲就是:JDK > JRE > JVM 三者从大到小包含着
二、 接下来我们就用简单易懂的图解来分析:
上图的意思很明显:
JDK是Java的核心,JDK包含了JRE(Java运行环境)、开发工具、各种类库。
JRE则包含了Java的虚拟机还有所有的基本类库。
JVM则是Java实现跨平台的最最最核心的部分了!是真正运行 .class文件的地方!
三、Java的跨平台性
在不同的操作系统,都有着截然不同的JDK,想要在自己的操作系统中运行Java文件,那就必须安装属于自己系统的JDK。
接下来我们来看看图片:
而.class文件之所以在不同的操作系统上都能运行,是因为每个系统的JDK都能识别并且执行.class文件。
在这里要给可爱并努力着的你们一个重要的提醒: Java的跨平台性,是指 .class文件能在不同平台的JDK上执行,所以说是 .class 文件跨平台,而JDK不具有跨平台性!!因为每个平台的JDK都有可能不一样!
Java文件的运行就如同西天取经,经历九九八十一难,不断的蜕变与升级,最终取得真经!
接下来让我们看看Java文件的运行:
- .java 文件 首先传到Java编译器,生成.class 文件
- .class 文件 传到 类加载器系统 处理
- 处理后再传到系统内存空间(包括垃圾回收器)
- 再经字节码校验器处理
- 再到解释器
- 最终到达操作系统上
在计算机的学习上同样像极了西天取经,路上充满荆棘与困难,同时也包含着各种机会,它没有捷径可寻,唯一可行的真理便是:坚持。
物有本末,事有始终;
知所先后,则近道矣。
在未来的日子里:我希望你们能多经历一些苦难,这样你们才会懂得每一分都来之不易。