首先我们大家都知道java是跨平台的,那它为什么会跨平台呢?
我们可以先来看看这幅图:
Java源码编译成字节码,字节码才会运行,字节码运行时操作系统是没办法直接运行的,我们需要java运行环境(JRE),JRE(包含java运行时需要的一系列类库、JVM(虚拟机))将java的字节码解释成机器能识别的指令。
JVM其实就是一个虚拟机,执行java编译好的字节码文件。
区分JDK、JRE、JVM:
JDK是java语言的软件开发工具包(SDK)
JRE(java运行环境),包含JVM标准实现及java核心类库
在JDK的安装目录下有一个jre目录,里边有2个文件夹bin和lib,你可以认为bin里的就是JVM,lib中是JVM工作所需要的类库,jvm和lib合称jre。