|
第一章 概述
Java语言是SUN公司开发的一种编程语言。它具有平台独立性、安全性、面向对象、动态性、分布性等卓越的特性,具备强大的网络功能。更广义地说,Java是一个普遍适用的软件平台,可用于Internet、Intranet网及各种设备、系统、计算平台。它是一种基本的、结构紧凑的先进技术,一经产生就引起了广泛的关注,并在很短的时间内蓬勃发展起来。 这一章将对Java的背景、影响、特性等方面作简要的介绍,以使读者对Java技术有一个概要的了解。
1.1 Java语言产生和发展的背景
Java语言源于Oak语言,这是SUN公司在一项消费性电子产品软件发展方案中采用的语言。Oak的设计目标是用以开发可靠、紧凑、易于移植的分布式嵌入系统。尽管Oak语言在技术上颇为成功,但由于商业上的原因,却未能在市场的激烈竞争中站稳脚跟。然而,Internet和WWW日新月异的发展却为Oak创造了新的生存空间。Oak经过改进,成为一种非常适合网络开发的独特语言——Java,从而脱颖而出,一举成名。 Internet,中译为“因特网”或“互联网”,是当今最大的国际性计算机互联网络。它源于美国国防部高级研究计划局(Advanced
Research Project
Agency)的网络ARPANET,但发展到今天,已成为一个庞大的全球网。顾名思义,这是一个“网间网”它把各种异构网络联接一起,使位于世界各地、不同网络中的人们能够自由地交换信息。Internet在全球的用户以千万计,并在不断激增;被它直接、间接连通的国家也越来越多。Internet上的协议标准也日益受到广泛支持并在不断地得到扩充。 WWW全称为World
Wide
Web,中译为“万维网”、“全球网”等,是Internet中最为直观和富有魅力的资源。它运用超文本(Hypertext)技术将信息组织成文字、声音、图像,用户可以用浏览器读取这些信息。WWW上信息种类繁多,用户可以根据自己的需要在任何时间访问自己所需的信息。WWW上的信息由页面组成,页面中包含超文本链接(Hypertext
Link),把位于不同页面的相关内容链在一起,因而检索信息非常方便。WWW的发展也是日新月异,它已不止局限于展示静止信息,正在不断增强交互和动态性。许多商家和企业也把目光瞄准了WWW,可以预料,WWW世界将变得越来越丰富多彩。 Internet(含WWW)为人们提供了许多有用的信息,然而,Internet上的用户使用着各种各样的计算机,系统软件和用户软件也缺乏兼容性。在这些不兼容的平台间交换信息,就像对许多语言不通的人讲话一样,是非常困难的。而Java与生俱来的特性刚好可以解决这道电脑界的“世纪难题”。它建立的虚拟环境运行标准解决了软件跨平台执行的问题,使不同的平台都能理解用Java编写的程序,命名Java语言成了网络世界的通用语言。因此,Java在Internet和WWW环境下如鱼得水,迅速风靡全球。 总之,Java作为一种独特的语言,诞生于Internet和WWW蓬勃发展的时期,可谓恰逢其时。如今的Java与当初的Oak语言已不可同日而语。而且,Java技术的创始者SUN公司采用了一种“开放”策略,将它公诸于众,更激发了第三方软件开发商的极大热情,纷纷发展Java技术。Java的前景是非常广阔的。
1.2 Java的主要特性
Java语言具有鲜明的特点,使它在分布式网络应用、多平台应用、图形用户界面、Web应用、多线程应用等软件的开发中成为方便高效的工具。下面择要进行介绍。 (1)开发和使用简单性。Java的语法风格非常近似于C++语言,但删改了C++中的指针、操作符重载等一些易混淆的地方。在内存管理方面又提供了垃圾收集。这使程序员可以在实现程序功能方面投注更多的精力,而无需考虑诸如内存释放等枝节问题。C++中复杂而灵活的指针操作往往导致严重的错误,一向是开发调试人员深感棘手的问题,而这在Java中却不存在。Java虚拟机还能为程序链接本地甚至远程的类库,开发人员不必关注其细节。凡此种种,提供了应用开发的简单性。 (2)分布式。Java对TCP/IP协议(如HTTP、FTP)的支持使Java程序可以轻易地建立网络连接,并通过统一资源定位器URL(Uniform
Resource
Locator)访问远程文件,如同访问本地文件一样方便。Java的运行时系统能动态地通过网络装入字节码,动态使用新的协议控制软件。 (3)面向对象性。与C++不同,Java对面向对象的要求十分严格,不允许定义独立于类的变量和方法(函数)。Java以类和对象为基础,任何变量和方法都只能包含于某个类的内部。这就使程序的结构更为清晰,为继承和重用带来便利。 (4)安全性。对于网络应用来说,这一点是极为重要的。Java将安全性作为第一考虑,设置了层层防范。首先在编译时进行语法、语义的检查。链接时,还要再进行一遍遍译级的类型检查,消除间接对象访问。运行时,Java的运行时系统将进行字节码检验,并记录对象的存储情况,将访问限制在安全范围之内。本地的类与远程的类分开运行,阻止远程系统对本地系统的破坏。支持Java的浏览器还允许用户控制Java软件对本地系统的访问。各种措施的综合使Java程序的安全性得到保证。 (5)平台独立性和可移植性。Java的应用程序接口(API)和运行时系统是可移植性的关键。Java为支持它的各种操作系统提供了一致的API。在API界面上,所有Java程序将都不依赖于平台。Java的运行时系统在解释执行程序时,将字节码转化为当前机器的机器码。程序开发人员无需考虑使用应用时的硬件条件和操作系统结构,用户只需有Java的运行时系统,就可运行编译过的字节码。 (6)多线程。Java提供了内置的多线程支持,程序中可以方便地创建多个线程,各个线程执行不同的工作。这使程序的工作简单。比如,用不同的线程分别控制声音和图像,可以轻易构筑声像交织的复杂效果,而编程时只要分别安排各线程的工作,不必关心它们的合作,这也大大促进了程序的动态交互性和实时性。 为了控制各线程的动作,Java还提供了线程同步机制。这一机制的内部实现基于管程。这一机制使不同线程在访问共享资源时能够相互配合,保证数据的一致性,避免出错。 (7)解释执行。Java程序经过编译形成字节码,然后在虚拟机上解释执行。这是Java程序能够独立于平台运行的基础。这也使程序有利于增量链接,从而加快开发过程。 以上简单介绍了Java的特点,尤其是与网络应用有关的优点。可以看出,Java在诸多方面具有无可比拟的优势。如果读者对这一节中有的名词尚不理解,可以参考本书的相关章节。
1.3 Java的影响
如上一节所述,Java具有许多独特的优势,因而Java产生深远的影响就是顺理成章的事了。如今的Java不仅仅是一种语言,它将大大改变开发人员、信息发布人员、信息技术管理人员和最终用户的工作方式。 Java对Internet的发展起了巨大的推动作用。Java的平台独立性使Java程序可以在配备Java虚拟机上的任一平台上运行。这就意味着使用各种平台的网络用户可以方便地通过网络下载Java程序,不经改动就在自己的机器上运行。这使软件的发布者无需知道用户使用的硬件环境,也无需了解用户的软件配置。开发人员不必为不同的平台编制不同版本的程序,只而编写一次就可以处处运行。Java严格的安全保证措施隔绝外来的侵入,从而提高了安全性。Java的特点使它成为为网络而设计的语言。因为同样的原因,Java也引起众多商家、金融家、教育界人士的浓厚兴趣。人们预期它在网上的联机金融服务、联机出版服务、远程教育、联机投资服务等领域大有用武之地。
Java对WWW的影响也是巨大的。过去,WWW页面只显示静止的文本和图像,没有与用户交互的成分。后来,人们开始设想在WWW页面中加入一些“可执行”的成分。当用户浏览这些页面时,可执行成分就运行起来,执行某些功能。这个吸引人的想法却受到了多平台的阻碍:可以在Unix平台上运行的成分对Win平台会完全无效,反之亦然。Java解决了这个问题。Java的“小应用程序”Applet正越来越多地出现在Web页面上,为各种平台的用户提供同样优质的服务。 公司内部的网络Intranet,实际上是Internet技术在公司范围内的应用。Java程序可以通过Intranet传送到公司内部的任何一种机器上,执行各种任务。Java带来了一种分布信息的崭新模式,它使Intranet上所有的微处理器讲相同的语言,协同工作,无缝地共享信息。公司由此可以节省大批购买和升级软件的费用,还可以减少大笔员工培训开支。以Java为基础的企业信息技术体系结构所带来的好处是难以估量的。 Java还是网络计算机(NC)的强大支持力量。由于PC的不断复杂化,人们发现如今的PC几乎已变成了“桌面上的大型机”。它麻雀虽小却五脏俱全,不仅具有与大型机类似的CPU、存储器、外设,还有复杂的系统软件。随着系统软件的不断升级,对硬件的要求也越来越高,由此带来无休止的升级问题。同时,由于软件硬件中的日益复杂,为了维护一台PC所需的人力物力也逐渐超过限度。于是网络计算机的概念应运而生。虽然不同的厂商对这个名词有不同的诠释,但总的思想是一致的。网络计算机就是一种功能简单、结构也很简单的计算机,它们没有辅存储器,也不必安装现在这样复杂的操作系统。它们通过网络与服务器相连,通过简单的手段(比如,通过浏览器)从网上获取信息,而复杂的存储与信息处理由服务器来完成。
Java的出现大大提高了网络计算机的可行性,利用Java技术生产的网络计算机芯片将成为NC的核心。实际上,SUN公司已开始生产Java处理器芯片,它可以被用于廉价终端(NC)、外设甚至蜂窝电话。电脑的用途由单应用置身网络应用的趋势是不可逆转的,而Java优越的网络特性正适应了这一趋势的需要。 由于Java的巨大优势,计算机界对它给予广泛关注。Java功能已被纳入SUN的HotJava浏览器,Netscape的Navigator浏览器,pyglall的Mosaic及Oracle的Power
Browser等浏览器;许多大公司如Toshiba,Fujistsu,IBM,Silicon
Graphics,Oracle,Microsoft,Sybase,Informix等都获得了Java的专利使用权;Borland
International,Symantec,Sybase等公司建立了各自的Java开发环境;SUN公司提出的“100%纯Java计划”已得到百余公司的支持;IBM,Microsoft,Silicon
Graphics,Apple
Computer,Hewlett-Packand等公司将把Java直接嵌入他们的操作系统。可见,Java的未来必将更加辉煌。
1.4 获取Java资源
Java在互联网上可以说无处不在。从网上得到Java的信息是最为方便快捷的,而且往往可以得到最新信息。下面列出几个可供参考的网点: (1)SUN公司简介 http://www.sun.com/ (2)Java简介 http://java.sun.com/或http://www.javasoft.com/ (3)Java开发者阵营 http://www.sun.com/sunsoft/camps (4)SUN公司网上杂志 http://www.sun.com/sunworldonline (5)Gamelan http://www.gamelan.com/(列出包含Java内容的网址及与网上Java资源的链接) 以上都是国外的网点。在中国教育科研网范围内要得到Java信息是非常方便的,许多高校的文件服务器上都有Java的软件和信息,而且一般比国外发布时间滞后不很多,这里就不一一叙述了。
1.5 Java新进展
Java语言发展很快,除了前面提到的之外,在此再介绍几个方面: (1)Just-in-Time编译器:它能将Java字节代码编译成与本机结构相适应的代码,以提高执行速度。 (2)Joe:是Java向客户机/服务器模式的扩展。它是第一个完全用Java语言编写的商用对象请求代理软件(ORB),遵循对象管理组(OMG)的“通用对象请示代理体系结构”(CORBA)。其测试版可以由http://www.sun.com/sunsoft/neo免费下载。 (3)类库的发展:SUN公司将Java类库划分为核心(CORE)和扩展(Standard
Extension)两类,前者是可以保证适用于所有Java平台的。SUN与许多第三方软件供应商都在开发新的类库。扩展类库如果发展较完善,就有可以被定为核心类库甚至打包到JDK(Java开发工具包)之中。目前正在发展和测试过程中的类库有很多。例如,Java
Enterprise API为Intranet的开发而设计;Java Commerse API用于开发商务应用;Java
Management API用于解决网络管理问题;Java Media API包含对二、三维图形、图像和语音、动画的处理;Java
Embeded API用于嵌入式设备(如电话)的软件开发,等等。 (4)开发工具:除了SUN公司的JDK和Java
WorkShop之外,还有许多公司研制出了一些Java的开发环境,如Symantec Cafe,Visual Cafe,Visual
J++等。甚至有的数据库厂商也推出了自己的Java开发环境,如Informix的Jwork和Sybase的Power
J。在这些开发工具中,JDK反映了Java的最新进展。虽然它的界面不如一引起可视化工具友好,但却是各种其他开发环境的基础。因此,本书后面章节将以介绍JDK为主。
本章小结
这一章介绍Java的产生、发展、特性、影响等方面的知识。后续各章中,将结合实例讲解Java程序设计,并介绍Java的开发工具和类库。第二至第五章将介绍Java的语言基础,讲解如何开发基本的程序。第六章起结合Java核心类库介绍较为高级的编程,如各类I/O,窗口程序设计,小应用程序设计,Java豆的开发,与数据库连接等等。本书的示例可以在JDK1.1版本下运行,鉴于Java语言类库及开发工具的不断发展导致了一引起版本差异,书中昼做到对1.0x版本和1.1版的不同编程细节均加以介绍,以便读者参考。 Java在计算机界的广泛支持和参与下必将得到更大的发展。虽然它还不完美,但前景光明,魅力无穷。愿我国广大计算机工作者和爱好者投身于Java热潮,为我国的计算机事业增添新的活力! [目录][上页][下页]
|