简介
由SUN公司在上世纪90年代初开发的一种面向对象的编程语言,介于编译型语言和解释型语言之间。
编译型语言和解释型语言
编译型语言:C,C++,Delphi,Pascal,Fortran
代码直接编译成机器码执行,但是不同平台(x86、ARM等)CPU的指令集不同,因此需要编译出每一种平台的对应机器码。
解释型语言:Python,MATLAB,Ruby,JavaScript,Ruby
可以由解释器直接加载源码来运行,代价是运行效率太低。
一次编写,到处运行
Java将代码编译成一种“字节码”,类似于抽象的CPU指令,然后针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行,从而实现“一次编写,到处运行”的效果。(通过JVM向字节码屏蔽平台的不同)
Java SE、Java EE、Java ME
- Java SE:Standard Edition标准版
包含标准的JVM和标准库 - Java EE:Enterprise Edition企业版
在Java SE的基础上加上了大量的API和库,以便方便开发Web应用、数据库、消息服务等,Java EE的应用使用的虚拟机和Java SE完全相同。 - Java ME:Micro Edition微缩版
针对嵌入式设备的“瘦身版”,Java SE的标准库无法在Java ME上使用,Java ME的虚拟机也是“瘦身版”
JDK、JRE、JVM
- JDK (Java Development Kit) Java开发工具包,JDK包含JRE
- JRE (Java Runtime Environment) Java运行时环境,JRE包含JVM
- JVM (Java Virtual Machine) Java虚拟机,JVM
如图,JDK=JRE+编译器调试器等工具,JRE=JVM+运行时库