1、什么是Java
Java是一种开发语言(核心特点:跨平台,面向对象,名称由来看这里:J2EE里面的2是什么意思),对于开发者来讲,Java基本等于Jdk。
Jdk的版本介绍看这里:[Java都有那些版本][3]
开发人员一般通过IDE(Eclipse、NetBeans、JBuilder等)编写、编译Java代码(在远古没有IDE的时代,都是用文本编辑器编写,使用javac编译),在这个过程中,会使用到Jdk与第三方Jar包(Jar包即一组编译后的类打成的压缩包,可以使用解压工具解压成文件结构)。
想知道Java能用来干什么吗:[Java都能干什么][4]
[4]:
具体关系图:
其中,Jdk中包含Jre,在Jdk的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是Jvm,lib中则是Jvm工作所需要的类库,而Jvm和lib和起来就称为Jre。
2.什么是Jdk
即Java Development Kit,是针对Java开发人员的产品,是整个Java的核心。
想要安装Jdk看这里:[如何安装和配置Jdk][5]
[5]:
包括:Java运行环境Jre、Java工具( javac/java/jdb等 )和Java基础类库( Java API,rt.jar等 )。
3.什么是Jre
即Java Runtime Environment,是运行Java程序所须环境的集合,包含Jvm标准实现及Java核心类库。
与大家熟知的Jdk不同,Jre是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户,只有通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。
运行Java程序一般都要求用户的电脑安装Jre;没有jre,java程序无法运行;而没有java程序,jre就没有用武之地。
包括:虚拟机Jvm,运行类库(runtime class libraries)和启动器(Java application launcher)。
4.什么是Jvm
即Java Virtual Machine,我们常说的Java虚拟机, 是整个Java实现跨平台最核心的部分,能够运行通过Java语言编写的应用程序。
所有的Java程序会首先被编译为.class的类文件,Jvm虚拟机可以执行这种编译后的类文件,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释为目标代码(不同操作系统不同),给本地系统执行。
Jvm屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码,就可以在多种平台上不加修改地运行。
只有Jvm还不能成class的执行,因为在解释class的时候Jvm需要调用解释所需要的类库lib,即Jre中的lib类库,单独的Jvm没有任何作用。