1.1 Java概述
与现实世界中的其他事物一样,计算机程序设计语言的发展也是不断变化的。目前,计算机程序设计行业中主要有面向过程程序设计和面向对象程序设计两大分支。在面向过程程序设计思想中,程序由在数据上运行的过程和功能的集合组成,许多传统程序设计语言(Fortran、Pascal和C等)体现的都是面向过程思想。在面向对象程序设计思想中,程序被看作“对象”的集合,数据和相关操作被封装在某个单元里,面向对象程序设计语言有Smalltalk、C++、Python和Java等。
1.1.1 Java语言的产生与发展
1991年,Sun公司设计了一种能够适用于编写嵌入式系统电子设备微处理器的程序设计语言,由James Gosling负责的编程团队对其进行了开发。与此同时,随着Internet的迅速普及,该语言被重新设计和编写,并于1995年Sun World 95大会上正式公布为Java语言。Java语言的产生,无论在理论计算领域、商业计算领域还是网络计算领域都开辟了计算机程序设计的新纪元,James Gosling也被业内称为Java语言之父。
从Java语言产生以后,它一直处于计算机程序设计语言的主流位置。1995年Java语言被美国的PC Magazine杂志评为1995年十大科技优秀产品,许多计算机公司(如IBM公司和Apple公司等)都开始支持和开发Java软件产品。2009年,Oracle公司收购了Sun公司,Java也归为Oracle公司所有。目前,Java语言的开发领域遍布计算机行业的各个方面,取得了显著的业绩。
1.1.2 Java语言的特点
Internet和Web应用的发展推动了Java语言的不断前进,它能够在异构、分布式网络中的不同平台上开发出灵活的应用程序。
1.简单性
从面向对象程序设计的角度来说,Java语言与其他程序设计语言有相同的特征,但是去掉了类似指针、多重继承等难以理解的特性,语法比较简单。Java语言在编译和运行方面通过垃圾自动回收机制简化了程序内存管理,统一了各种数据类型在不同操作系统平台上所占用的内存大小。
2.面向对象性
Java语言在产生之初就致力于建立一种模拟人类思维来解决实际问题的模型,这种模型将重点放在对象和对象的实现上,非常符合人们的思维习惯,容易扩充和维护。
3.网络特性
Java语言具有处理网络协议的特点,能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。目前,网络技术的不断发展促进了Java语言程序设计平台的扩展,Java语言广泛应用到网络、移动端和嵌入式设备等方面。
4.健壮性
Java语言在编译和解释执行过程中都会进行严格的检查,以减少错误的发生,其中垃圾自动回收机制和异常处理机制在很大程度上保证了程序的健壮性。
5.安全性
Java语言设计的程序可以适用于网络和分布式系统,这就需要Java程序必须符合网络安全协议。在解释执行程序过程中,Java虚拟机会针对程序的安全性进行检测,它不会访问或修改不允许访问的内存或文件。
6.平台无关性
Java编译器会对Java程序生成一个体系结构中立的目标文件格式,这是一种编译成功的代码,只要有Java运行时系统,就可以在不同处理器上运行同一个Java程序,而不需要做任何修改。Java编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性。这些字节码不仅可以很容易地在任何计算机上运行,而且可以迅速地翻译成本地计算机代码。
7.可移植性
Java语言在基本数据类型和引用数据类型的定义上以字节码的方式进行存储,这消除了二进制数据顺序的困扰,增强了字节码数据可移植的能力。
8.解释型特性
Java语言是一种解释型程序设计语言,解释器可以在任何移植了解释器的计算机上执行Java字节码,开发过程更加快捷。随着编译和解释能力的提高,目前,使用即时编译器可以将字节码翻译成机器码。
9.多线程性
多线程机制可以带来更好的交互响应和实时行为,Java语言多线程程序设计可以利用多个处理器并发执行多任务,提高程序运行效率。
10.动态性
Java语言能够适应不断发展的环境,它的类库可以自由添加新方法和实例变量,而对客户端却没有任何影响,这种动态特性提高了Java语言封装新特性的发展速度。
1.1.3 Java语言的开发与运行平台
计算机平台是程序在其中运行的硬件或软件环境,如Microsoft Windows、Linux、Solaris OS和Mac OS等。大多数计算机平台都可以被描述为操作系统和底层硬件的组合,而Java语言的开发与运行平台则是一种运行在其他基于硬件平台之上的纯软件平台。Java平台由Java虚拟机(Java Virtual Machine,JVM)和应用程序编程接口(Application Programming Interface,API)两部分组成,如图1-1所示。
图1-1 Java源程序、Java平台和底层硬件的关系图
Java语言的应用领域非常广泛,与之相对应,Java语言的程序设计与运行平台主要有如下三个版本。
(1)Java SE(Java Standard Edition):称为Java标准版本或Java标准平台。Java SE提供了标准的Java开发工具包JDK(Java Development Kit)来开发Java桌面应用程序、某些服务器应用程序和Java Applet小程序等。JDK是整个Java的核心,包括了Java运行时环境JRE(Java Runtime Environment)、Java工具和Java基础类库。
Java SE从早期的J2SE 1.1版本开始一直持续更新。2004年9月,J2SE 1.5版本发布时更名为Java SE 5.0,目前已经更新至Java SE 8.0系列版本,并且不断更新版本。
(2)Java EE(Java Enterprise Edition):称为Java企业版本或Java企业平台。Java EE不仅提供了标准的JDK,而且增加了Java EE标准开发工具包SDK(Standard Development Kit)来开发企业级的服务应用程序。目前该版本已经更新至Java EE 6.0系列,并且不断更新版本。
(3)Java ME(Java Micro Edition):称为Java微型版本或Java微型平台。Java ME是一种微型的Java开发和运行时环境,主要用于各种小型或微型系统设备的产品程序开发。针对不同的系统设备,Java ME提供了相应的SDK套件进行程序开发,如移动设备、嵌入式系统、Java TV及Java Card等。同时,每种SDK套件都有相应的更新版本。