Java并不只是一门语言,它是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码,以及一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。
Java的特性
简单性
java类似于c++,但剔除了C++中许多很少使用,难以理解,容易混淆的特性。
面向对象
java面向对象的概念与c++旗鼓相当。
健壮性(*)
健壮性是指程序可以适应正常和非正常的运行环境,都可以正确地运行;随着业务量的增加,不会出现阻塞和不可用的情况。
java编辑器能够检测许多在其他语言中仅运行才能检测出来的问题。并且java采用的指针模型可以消除重写内存和损坏数据的可能性。
可移植性
java并不依赖具体的实现,java规范中如基本类型的大小和有关运算的行为都有明确的说明。java将代码编译成一种“字节码”,它类似于抽象的CPU指令,针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行,这样就实现了“一次编写,到处运行”的效果。而对于虚拟机,需要为每个平台分别开发。为了保证不同平台、不同公司开发的虚拟机都能正确执行Java字节码,SUN公司制定了一系列的Java虚拟机规范。从实践的角度看,JVM的兼容性做得非常好,低版本的Java字节码完全可以正常运行在高版本的JVM上。
解释型
Java介于编译型语言和解释型语言之间。编译型语言如C、C++,代码是直接编译成机器码执行,但是不同的平台(x86、ARM等)CPU的指令集不同,因此,需要编译出每一种平台的对应机器码。解释型语言如Python、Ruby没有这个问题,可以由解释器直接加载源码然后运行,代价是运行效率太低。而 java解释器可以在任何移植了解释器的机器上直接执行java字节码,开发过程也变得更加快捷。
Java术语
- JDK:Java Development Kit(java开发工具包)
JRE就是运行Java字节码的虚拟机 - JRE:Java Runtime Environment(java运行时环境)
但如果只有Java源码,要编译成Java字节码,就需要JDK,因为JDK除了包含JRE,还提供了编译器、调试器等开发工具。
- Java SE:Standard Edition(标准版)
包含标准的JVM和标准库 - Java EE:Enterprise Edition(企业版)
在Java SE的基础上加上了大量的API和库,以便方便开发Web应用、数据库、消息服务等,Java EE的应用使用的虚拟机和Java SE完全相同 - Java ME:Micro Edition(微型版)
Java ME就和Java SE不同,它是一个针对嵌入式设备的“瘦身版”,Java SE的标准库无法在Java ME上使用,Java ME的虚拟机也是“瘦身版”
Java版本
- 1.0
- 1.2(java2)
- 1.3、1.4
- 1.5-1.8(内部版本号),Java SE 5.0-8.0
- 9.0-14.0