简单介绍JDK vs JRE vs JVM三者区别
文编|JavaBuild
哈喽,大家好呀!我是JavaBuild,以后可以喊我鸟哥,嘿嘿!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,珍惜现在来之不易的学习时光,等工作之后,你就会发现,想学习真的需要挤时间,厚积薄发啦!
1995年Sun公司在SunWorld大会上发布了Java1.0版本,并提出可那个响彻云霄的"一次运行,随处编译"的口号,这句话充分的展示出了Java的跨平台特性,提到跨平台,便衍生出了我们今天需要讨论的话题,JDK、JRE、JVM三者的区别
JDK :Java Development Kit( java 开发工具包)。即java语言编写的程序所需的开发工具包,包含了 JRE,同时还包括 java 源码的编译器 javac、监控工具 jconsole、javap(反编译工具)、 javadoc(文档注释工具)、jdb(调试器)、分析工具 jvisualvm等等。
JRE :Java Runtime Environment( java 运行时环境)。即java程序的运行时环境,包含了 java 虚拟机,java基础类库。作为运行时环境,顾名思义,如果仅是用来运行Java程序,而不是用开发Java的话,安装了JRE就够了。
图中为Oracle官网给出的JDK,JRE,JVM三者的区别。
JVM :Java Virtual Machine(Java虚拟机)的缩写,.class 文件会在 JVM 上执行,JVM 会解释给操作系统执行,有自己的指令集,解释自己的指令集到 CPU 指令集和系统资源的调用,JVM 只关注被编译的 .class 文件,不关心 .java 源文件。一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域等组成,屏蔽了不同操作系统(macOS、Windows、Linux)的差异性,使得 Java 能够"一次编译,到处运行"。
JVM使我们需要重点关注的对象,后续还会针对JVM出一系列的面试题,敬请期待。