jdk jre 作用?两者关系
jdk是Java的运行环境,包含有jre 通常安装jdk就可以是适合于java开发者的工具
jdk是java标准的开发工具包。它提供了编译、运行Java程序所需的各种工具和资源,包括java编辑器,java运行环境jre 以及常用的Java基础类库等,是整个Java 的核心工具。
jre:是运行基于Java语言编写的程序所必不可缺少的运行环境,用于解释执行java的字节码文件,颞部包含了jvm。
jvm:是Java的虚拟机,是jre的一部分。负责解释执行字节码文件,是可以运行java字节码文件的虚拟机。
字节码:.class文件 这是一个只面对Java虚拟机的的代码,可以被虚拟机接受理解,然后通过解释器转义为可被计算机理解的代码(不同的操作系统解释器(转义环境)不一样的)从而使得Java所编译程序可以被计算机运行。
每一种操作系统的的解释器是不同的,但是.class文件实现的虚拟机是相同的,java源程序经过编译成为字节码.class文件 在经过虚拟机根据不同操作系统平台的的解释器解释为可以被计算机执行的代码,实现再计算机上的运行,这也解释了java编译与解释共存的特定。
Java源代码---->编译器---->jvm可执行的Java字节码(即虚拟指令)---->jvm---->jvm中解释器---->机器可执行的二进制机器码---->程序运行。
java语言跨平台的解释:
1:在不同的操作系统上有不同的虚拟机,虚拟机屏蔽了底层运行平台的差别(通过不同的解释器来实现),实现了一次编译到处运行 再某个操作系统平台上,开发编译出来的字节码文件.class可在不同的操作系统平台上执行。
2:在不同的操作系统平台上,安装了对应操作系统的不同版本的jvm虚拟机(Java的运行容器)。不同的操作系统平台上营造出的运行环境是一样的因此可以到处运行。(只是让用户感觉到是一样的他的实现肯定是不同的差别就是解释器的不同)