JDK包含了JRE,JRE包含了JVM
- JDK:java开发工具包,针对java开发人员,可以编译运行java程序
- JRE:java运行时环境,针对使用java程序的客户,可以运行字节码(.class),但是不能编译Java源码
- JVM:用来解释执行字节码文件(.class),但不能正确的执行
什么是JVM
JVM是JRE的一部分,是虚拟出来的一台计算机.通过实体计算机仿真各种计算功能来实现,JVM有自己完善的硬件架构,如处理器,堆栈,寄存器等,还有相应的指令集.JVM是Java跨平台的核心,Java程序通过JVM的跨平台,从而使Java程序跨平台.Java程序首选会被编译成字节码文件(.class),JVM的核心任务就是解释字节码文件(.class)并映射到真实CPU指令集或者系统调用.JVM不关系上层Java程序,只关系字节码(.class).
什么是JRE
JRE是Java运行环境,所有Java程序必须依赖JRE才能运行.只有JVM是不能运行字节码文件的(.class),因为解释的字节码的时候需要lib库. JRE里面有两个文件夹bin/,lib/。bin/就是JVM,lib就是JVM所需要库。JVM+lib=JRE
什么是JDK
JDK是Java的核心,包含运行Java运行环境(JRE)和一些Java工具及Java基础类库 。
JDK提供的工具
Java Api是Java的应用程序接口,里面有很多写好的Java Class,包含一些重要的语法结构以及基本图形,网络和文件IO,我们可以直接调用。
总结
- 相同点:这两个JRE都可以作为Java程序的运行环境
- 不同点:JDK只能使用自己目录自带的JRE,不能使用外面单独安装的JRE