1.1 Java的概念
Java是一门面向网络的高级程序设计语言,程序员可以用它创建应用程序,这些程序通过网络下载后运行,对于本地主机是安全的。如果将Java和网络融合在一起,将会组合成一个网络计算环境。Java分布式的特性,可使网络上的任何主机运用部署的程序。
1.1.1 Java是什么
Java语言作为一种编程语言,它的语法规则与C++很相似,但又避免了C++中存在的弊端,因此有其自身的优点,如简单、面向对象、分布式、解释性、可靠、安全、可移植性、高性能、多线程、动态性等。所以,也可以说Java是一种解释性、跨平台、通用的编程语言。
Java也是一种网络程序设计语言。Applet程序编译器编译成字节码文件,将被放在WWW网页中,并在HTML做出标记,只要用户的主机安装了Java就可以直接运行Applet。Java比较适合网络环境,因此,其成为Internet中最流行的编程语言之一。
1.1.2 Java平台
Java不仅具有跨平台的特性,而且可以通用于各种计算机网络之间的技术体系。它的特点是简单、便于网络传输、对硬件的依赖性比较低。在开发了Java语言之后,它已经从一门语言演化为一个计算机平台。Java以其独特的优势,将给未来的网络世界带来巨大的变革。Java具有“编写一次,到处运行”的特点,完全实现了不同系统之间的互操作。
平台是程序运行的软件和硬件的组合,大多数平台包括硬件和操作系统两部分。Java平台(Java Platform)广义的概念指可执行Java字节码的平台。它由两部分组成:Java虚拟机(Java Virtual Machine,JVM)和Java应用程序界面(Java API)。
图1-1就是Java程序(应用程序〔application〕或小程序〔applet〕)在Java虚拟机运行的结构框架。
图1-1 Java平台结构
Java平台在具体实现中,可以表现出如下三种方式。
· Java虚拟机(Java Virtual Machine,JVM)。
· Java操作系统(Java Operating System)。
· Java芯片(Java Chip)。
Java虚拟机 指在操作系统上面运行的一种软件程序,此程序可以解析Java字节码,并在操作系统的配合下执行字节码。这样的执行框架如图1-2所示。
图1-2 Java虚拟机
由于芯片上面执行的是操作系统,操作系统上面又直接执行Java虚拟机,而Java虚拟机执行上面的Java字节码,因此Java字节码的执行是在Java虚拟机上面,所以包含Java虚拟机的部件才称为Java平台。
Java操作系统 指将Java虚拟机与操作系统整合在一起,或者构造一个全新的Java操作系统。这样就形成三层的执行架构,如图1-3所示。
图1-3 Java操作系统
Java芯片 指Java操作系统和芯片整合到一起,或者制造全新的Java专用芯片,因此,这样的执行架构可分为两层,如图1-4所示。
图1-4 Java芯片
上面介绍了三种Java平台结构,各有其优缺点,不能完全说哪一种方式更具有优势,必须根据实际应用情况才能决定。通常情况下,通过Java操作系统执行Java字节码效率比虚拟机的方式要好,这种方式可能成为今后的发展趋势。但是设计一套执行Java的全新操作系统,不是一件容易的事情。
注意:Java芯片的方式实现Java平台,对于Java程序来说对程序的执行速度有很大的提高,这种方式将会成为嵌入式系统的主流。
1.1.3 Java的操作系统
Java语言不仅仅是一门编程语言,更是一个网络操作系统,因为:
· Java语言不依赖于操作系统,它可以运行到计算机硬件或CPU上。
· Java语言可以自己管理内存。
· Java语言支持多线程运行,可对处理器资源进行分配和管理。
· Java语言可以管理硬件设备,如鼠标、键盘等。
· Java语言支持网络文件管理,它的文件概念已经扩展到整个Internet网络。
Java是具有很强吸引力的面向对象的编程语言,又是目前最为流行的网络编程语言。Java语言的出现引起了整个计算机软件程序开发的重大变革,这给以往的软件设计理念提出了新的挑战。
1.1.4 Java的优点
Java语言由C++发展而来,因此其继承了C++面向对象的全部特征,同时它还剔除了C++语言中一些复杂的特性,成为一种纯正的面向对象的程序设计语言。可以说,Java语言非常适合企业级的应用程序开发。Java语言是一种简单的、面向对象的、分布式的、健壮的、安全的、平台无关的、可移植的、解释性的、高效率的、多线程的、动态的程序设计语言。
· 简单性是指由于Java语言最初是为了消费性电子产品进行集成控制研发的一种程序设计语言,所以它具有简单明了、易于学习的特点。
· 面向对象是对现实世界自然事物的抽象和延伸。现实世界的任何事物都可被归为一类事物,具体事物可被看作某一类事物的一个实例对象。面向对象语言是对象和消息的结合。面向对象程序设计语言的三个基本特征是:封装、多态性和继承。
· 分布式的概念包括数据形式的分布和操作形式的分布。数据分布指将数据存储在不同的网络主机上;操作分布指将一个计算分散到不同的网络主机上完成。
· Java的健壮性主要是指为预防程序设计中经常遇到的一系列错误以致程序的不稳定,而采取的有效方法。如高效的内存管理机制、限制指针操作、抛出运行时异常等。
· Java语言具有很高的安全性。Java程序经常应用于网络环境中,因此,为了保证程序的安全性,Java提供了一系列的安全处理机制,以防代码被修改,确保系统安全。
· Java的平台无关性,即“一次编写,到处运行”。Java编写的应用程序无须做任何的修改就可以在不同的硬件和软件平台上运行。平台无关性概念具有两个层次:源代码级和目标代码级。
· Java的可移植性主要是指源代码的可移植性,即任意一个Java程序,在任何的CPU、操作系统和Java编译器上,都会产生相同的运行结果。
· Java是一种解释性的语言,它的源程序不是编译成特定的机器语言,而是编译成与系统无关的字节码,由Java虚拟机来执行。任何系统只要安装了虚拟机,就可以运行Java程序。
· Java是一种高效率的程序设计语言,在Java版本不断更新的过程中,Java性能也有了更大的发展,它可以与C/C++拥有几乎同样的运行速度。
· 多线程的概念来自于操作系统。Java对多线程的支持表现在两方面:其一,Java环境就是多线程的;其二,Java语言可以内置多个线程操作。
· Java的动态性是指Java语言能够适应于动态变化的环境。Java程序需要的类库可以被动态添加到运行环境,也可以通过网络获得运行程序所需要的类。
总而言之,Java的设计特性使得Java应用程序具有很强的健壮性和可靠性,从而减少系统维护成本。Java面向对象的特征及其提供的类库可以缩短应用程序的开发时间,减低开发成本。Java语言的可移植性能够提供一个随处可以使用的开发结构,并在多个平台之间传递信息的低成本方式。Java企业应用编程接口为企业级信息平台的减少提供了丰富的类库和相关支持。