Java语言概述
本任务的目标是简要介绍Java语言,包括理解程序设计思想、Java语言概述。通过本任务的学习,读者可以对基于面向对象的程序设计思想的Java语言有宏观的了解,对Java语言的三大开发平台有基本的认知。
程序设计思想,是指用计算机来解决人们实际问题的思维方式。常用的程序设计思想有面向过程的程序设计思想和面向对象的程序设计思想两种。
1.面向过程的程序设计思想
面向过程的程序设计思想是一种以事件为中心的编程思想,即分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步地实现,使用的时候依次调用。例如,一个学生早上起来通常要做的事情可以大致概括为以下几个步骤:起床—穿衣—洗漱—去学校。而这4步就是一步一步地完成的,它们的顺序很重要。
一般的面向过程思想是自上向下、步步求精的,将一个复杂任务按照功能进行拆分,并逐层细化到便于理解和描述的程度,最终形成由若干独立模块组成的树状层次结构,所以面向过程思想最重要的是模块化的设计思想,即结构化程序设计。比较著名的面向过程的程序设计语言有:C语言、Pascal语言、BLISS语言等。
当程序规模不是很大时,面向过程的程序设计思想比较具有优势,因为程序的流程很清楚,按照模块与函数的结构可以很好地组织程序流程。但面向过程的程序设计思想也有缺陷,主要表现在以下方面。
①难以满足大型软件开发的设计需求。在大型多文件软件系统中,随着数据量的增加,由于数据与数据处理相对独立,程序流程变得越来越难以理解,文件之间的数据沟通也变得非常复杂。随着软件开发复杂度的不断提高,面向过程的程序设计思想就容易出现更多的不可控问题。
②程序可重用性差。面向过程的程序设计思想即使是面对已经处理过的问题,伴随着数据类型的变化或者处理方法的改变都必将导致程序的重新设计。这种额外开销与可重用性相互矛盾,称为“重复投入”。
这些由面向过程的程序设计思想所导致的缺陷,其本身是无法弥补的,而越来越多的大型程序设计又要求必须弥补这些缺陷。这就导致了面向对象的程序设计思想的产生。
2.面向对象的程序设计思想
面向对象的程序设计思想是相对于面向过程的程序设计思想而言的。它是从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能地运用人类的自然思维方式,强调直接以现实世界中的事物为中心来思考问题和认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。简单来说,就是将我们编程时相关的数据和处理方法都“打包”,整体来对待,也就是将我们现实世界的事物看成由属性(数据)和它本身的操作(方法)所构成。把数据和方法整合到一起就形成了面向对象的程序设计思想中的一个重要概念“类”,然后通过类的声明得到对象。编程时有效地利用类的继承性,也会在很大程度上提高编程的效率。当应用程序功能发生改变时,只需要修改相关的对象,使得代码的维护更容易。如果用面向对象的程序设计思想来处理前文提到的“学生”这个例子,就可以抽象出一个学生类。它可以包括两个属性(姓名、年龄),4个方法(起床、穿衣、洗漱、去学校)。小明这个学生就可以声明成学生类的一个对象。比较著名的面向对象的程序设计语言有:Java语言、C++语言、C#语言等。
面向对象的程序设计思想具有以下优点。
①数据抽象可以在保持外部接口不变的情况下改变内部实现,从而减少甚至避免对外界的干扰。
②通过继承大幅减少冗余的代码,并且可以方便地扩展现有代码,提高编码效率,降低出错率和软件维护的难度。
③结合面向对象分析、面向对象设计,允许将问题中的对象直接映射到程序中,减少软件开发过程的中间环节转换。
④通过对对象的辨别、划分可以将软件系统分割为若干相对独立的部分,在一定程度上更便于控制软件的复杂度。
⑤通过对象的聚合、联合可以在保证封装与抽象的原则下,实现包括对象在内的结构以及外在功能的扩充。
随着软件功能需求的不断增加,软件的规模越来越大、复杂度越来越高。面向对象的程序设计思想逐步成为当前主流的程序设计思想。Java语言是当前最为流行的面向对象的程序设计语言之一,被广大程序开发人员普遍使用。下面让我们对Java语言进行初步的了解。
1.Java语言的起源
1991年,Sun公司为了进军家用电子消费市场,成立了一个代号为Green的项目组。之后Oak(橡树)项目出现。Oak以C++语言为蓝本,吸收了C++语言中符合面向对象程序设计要求的部分,同时加入了一些满足网络设计要求的内容。1994年,Green项目组成员认真分析计算机网络应用的特点,认为Oak满足网络应用所要求的平台独立性、系统可靠性和安全性等。1995年5月23日,Sun公司正式发布了Java语言。
Java语言一经推出,就受到了业界的关注。Netscape公司第一个认可了Java语言,并于1995年8月将Java的解释器集成到它的主打产品Navigator浏览器中。接着,Microsoft公司在Internet Explorer浏览器中认可了Java语言。从这时起,Java语言开始了它的发展历程。
2.Java语言的特点
Java语言是简单的、面向对象的语言,它具有分布式、安全性等特点,又可以实现多线程,更主要的是它与平台无关,解决了困扰软件开发界多年的软件移植问题。
(1)面向对象
面向对象程序设计是近代软件工业的一种革新,它提高了软件的弹性度、模块化程度与重复使用率,降低了软件的开发时间与成本。Java语言是完全对象化的程序设计语言,编程重点在于产生对象、操作对象以及如何使对象能一起协调工作,以实现程序的功能。
(2)语法简单
Java语言的语法类似于C语言和C++语言的语法,熟悉C++语言的程序开发人员不会对Java语言感到陌生。与C++语言相比,Java语言对复杂特性的省略和实用功能的增加使得开发变得更加简单、可靠。
(3)平台无关性
平台无关性是指Java语言能运行于不同的硬件和操作系统之上。Java语言引进了虚拟机的概念。Java虚拟机(Java Virtual Machine,JVM)是建立在硬件和操作系统之上的,用于实现对Java字节码文件的解释和执行,为不同的操作系统提供统一的Java接口。这使得Java程序可以跨平台运行,非常适合网络应用。
(4)安全性
安全性是网络应用必须考虑的重要问题之一。Java语言的设计目的就是提供一个网络/分布式计算环境,因此,Java语言特别强调安全性。Java程序运行之前会利用字节确认器进行代码的安全检查,确保程序不会存在非法访问本地资源、文件系统的可能性,保证程序在网络间运行的安全性。
(5)分布式应用
Java语言为程序开发提供了java.net包,该包提供了一组类,使程序开发人员可以轻松实现基于传输控制协议/互联网协议(Transmission Control Protocol/Internet Protocol,TCP/IP)的分布式应用。此外,Java语言还提供了专门针对互联网应用的一整套类库,供程序开发人员进行网络程序开发使用。
(6)多线程
Java语言内置了多线程控制,可以使用户程序并行执行。利用Java的多线程编程接口,开发人员可以方便地写出多线程的应用程序。Java语言提供的同步机制,还可保证各线程对共享数据的正确操作。在硬件条件允许的情况下,这些线程可以直接分布到各个中央处理器(Central Processing Unit,CPU)上,充分发挥硬件性能,提高程序执行效率。
3.Java语言的三大开发平台
Java语言发展到今天,已从一种编程语言发展成为全球第一大通用开发平台。Java的程序开发技术已被计算机行业主要公司所接受和采纳。1999年,Sun公司推出了以Java 2平台为核心的J2SE、J2EE和J2ME三大开发平台。随着三大开发平台的迅速推进,全球形成了一股巨大的Java应用浪潮。
(1)J2SE
J2SE(Java 2 Standard Edition,Java 2平台标准版)适用于个人计算机以及低端的服务器桌面系统应用程序的开发。J2SE包含构成Java语言的核心类库。
(2)J2EE
J2EE(Java 2 Enterprise Edition,Java 2平台企业版)是一种利用Java 2平台来简化企业级应用程序开发、部署和管理等相关复杂问题的解决方案。J2EE主要用于分布式的网络应用程序的开发,构建企业级的服务器应用程序等,例如电子商务系统、企业资源计划(Enterprise Resource Planning,ERP)系统等。J2EE除了包含J2SE的类,还包含用于开发企业级应用程序的类库。
(3)J2ME
Sun公司将J2ME(Java 2 Micro Edition,Java 2平台微型版)定义为“一种以广泛的消费性产品为目标、高度优化的Java运行环境”。自1999年6月Sun公司在JavaOne Developer Conference上声明之后,J2ME进入了小型设备开发的行列。基于Java语言特性、遵循J2ME规范开发的Java程序可以运行在各种不同的小型设备上,如手机、平板电脑、智能卡、机顶盒等设备。
简单地说,J2SE用于小型应用程序开发,J2EE用于大型网络应用程序开发,J2ME用于手机等嵌入式消费类产品应用程序开发。J2SE包含于J2EE中,J2ME包含J2SE的核心类,但添加了一些专用的类库。这三大开发平台所使用的语言都是Java语言,只是捆绑的类库不同。