第一部分 Java入门
第一章 Java概述
§ 1.1 Java语言出现的背景、影响及应用前景
一、背景
最近一年多来 ,在 Internet上出现的非凡吸引人的事件就是Java语言和用Java编写的浏览器HotJava。
1991年 ,SUN MicroSystem公司的 Jame Gosling、 Bill Joe等人 ,为在电视、控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak 的软件 (即一种橡树的名字 ),但当时并没有引起人们的注重 ,直到 1994年下半年 ,Internet的迅猛发展 ,环球信息网 WWW的快速增长 ,促进了 Java语言研制的进展 ,使得它逐渐成为 Int ernet上受欢迎的开发与编程语言 ,一些闻名的计算机公司纷纷购买了 Java语言的使用权 ,如 Mi-croSoft、 IBM、 Netscape、 Novell、Apple、 DEC、 SGI等 ,因此 ,Java语言被美国的闻名杂志 PC Magazine评为 1995 年十大优秀科技产品 ,(计算机类就此一项入选 ),随之大量出现了用 Java编写的软件产品 ,受到工业界的重视与好评 ,认为 "Java是八十年代以来计算机界的一件大事 ",微软总裁比尔·盖茨在静静地观察了一段时间后 ,不无感慨地说 :"Java是长时间以来最卓越的程序设计语言 ",并确定微软整个软件开发的战略从 PC单机时代向着以网络为中心的计算时代转移 ,而购买 Java则是他的重大战略决策的实施部署。
因此 ,Java的诞生必将对整个计算机产业发生深远的影响 ,对传统的计算模型提出了新的挑战。
SUN MicroSystem公司的总裁 Scott McNealy认为 Java为 Internet和 WWW开辟了一个崭新的时代环球信息网 WWW的创始人 Berners-Lee说 :"计算机事业发展的下一个浪潮就是 Java,并且将很快会发生的"。
看来 ,使用 Java已成大势所趋 ! MicroSoft和 IBM两大公司都计划在 Internet上销售用 Java编写的软件。Apple、 HP、 IBM、 MicroSoft、 Novell、 SGI、 SCO、 Tandem等公司均
计划将 Java并入各自开发的操作系统 ,而负责开发并推广 Java技术的 SunSoft公司 (这是 SUN下属的一个子公司 ),将通过颁发许可证的办法来答应各家公司把 Java虚拟机和 Jav a的 Applets类库嵌入他们开发的操作系统 ,这样各类开发人员就能更轻易地选择多种平台来使用 Java语言编程 ,不同的用户也就可以脱离 Web浏览器来运行 Java应用程序 ,这无疑是很受广大用户欢迎的 ,也为 Java语言的应用开拓了极为广阔的前景。 (当然 ,各类 JavaOS之间的兼容性必须得到重视 ,好在JavaSoft已保证将监督这种兼容性 )。
另外 ,由 JavaSoft推出的完全用 Java编写的 Internet上新型浏览器HotJava,比去年 alpha版更为实用 ,不仅能编制动态的应用软件 ,而且能编制完整的成套桌面应用软件 ,将来还会提供更多的能帮助编制动态应用软件的模块 ,显然 ,这也是为 Java的应用提供了有力的例证。
今年 6月 7日 ,由 SUN公司和台湾经济事务部信息发展局、台湾信息技术研究所等单位牵头 ,成立了一个"Java联盟 ",参加的有 22个在台湾相当闻名的计算机公司 ,并在台北建立一个 "Java开发中心 ",在新竹建立一个"Java语言实验室", 以掀起台湾开发与应用 Java语言的热潮。
香港则在今年 4月就举行了全岛的 Java杯比赛 ,在计算机界掀起了学习 Java的热潮 (尤其是在大学生们中 ,出现了一批 Java迷 )。
有人预言 :Java将是网络上的 "世界语 ",今后所有的用其他语言编写的软件统统都要用 Java语言来改写。
二、 Java语言对软件开发技术的影响工业界不少人言 :"Java语言的出现 ,将会引起一场软件革命 ",这是因为传统的软件往往都是与具体的实现环境有关 ,换了一个环境就需要作一番改动 ,耗
时费力 ,而 Java语言能在执行码 (二进制码 )上兼容 ,这样以前所开发的软件就能运行在不同的机器上 ,只要所用的机器能提供 Java语言解释器即可。
Java语言将对未来软件的开发产生影响 ,可从如下几个方面考虑 :
1软件的需求分析 :可将用户的需求进行动态的、可视化描述 ,以提供设计者更加直观的要求。而用户的需求是各色各样的 ,不受地区、行业、部门、爱好的影响 ,都可以用 Java语言描述清楚。
2软件的开发方法 :由于 Java语言的面向目标的特性 ,所以完全可以用 O-O 的技术与方法来开发 ,这是符合最新的软件开发规范要求的。
3 Java语言的动画效果远比 GUI技术更加逼真 ,尤其是利用 WW W提供的巨大动画资源空间 ,可以共享全世界的动态画面的资源。
4软件最终产品 :用 Java语言开发的软件可以具有可视化、可听化、可操作化的效交互、动画与动作 ",要它停就停 ,要它继续就继续 ,而这是在电影与电
视播放过程中难以做到的。
5其它 :使用 Java语言对开发效益、开发价值都有比较明显的影响。
三、工业界对 Java语言的评价
1996年 5月 29~ 31日 ,在美国旧金山召开了一个全世界 Java语言开发者大会 ,(JavaOne Developer Confer-ence),出席会议的多达 6500多人 ,来自工业
界的超过一半 ,有人评价说 :"这是近年来计算机界最 光辉的一次盛会 ",一些工业界的老总们相当看好 Java语言 ,认为它的使用将会引起一场软件革命。从软件
的设计风格、设计方法、设计目标到设计过程 ,都会产生彻底的变革 ,"甚至会改变此星球的生活方式 "。
在这次会上 ,Java的创始人之一 James Gosling说 :"Java不仅仅只是 applets,它能做任何事情 ",Dta咨询公司的高级软件工程师 Rich Kadel说 :"Java不仅仅是一种程序设计语言 ,更是现代化软件再实现的基础 ;Java还是未来新型OS的核心 ;将会出现 Java芯片 ;将构成各种应用软件的开发平台与实现环境 ,是人们必不可少的开发工具 ,…… "。
由于各界都看好它 ,因此 ,各大公司都纷纷表示支持Java,Inte l、 Xerox 公司声言将把 Java嵌入到他们的产品中去。就连华尔街金融界也在投入资金人力用 Java开发电子贸易、金融软件。
所以有人说 :"现在第三方的开发商都团结在 Java大旗四周了 !",纷纷推出用 Java开发的各种软件产品 ,以期尽快地占领市场。
四、 Java语言的应用前景
Java语言有着广泛的应用前景 ,大体上可以从以下几个方面来考虑其应用 :
1所有面向对象的应用开发 ,包括面向对象的事件描述、处理、综合等 ;
2计算过程的可视化、可操作化的软件的开发 ;
3动态画面的设计 ,包括图形图像的调用 ;
4交互操作的设计 (选择交互、定向交互、控制流程等 );
5 Internet的系统治理功能模块的设计 ,包括 Web页面的动态设计、治理
和交互操作设计等 ;
6 Intranet(企业内部网 )上的软件开发 (直接面向企业内部用户的软件 );
7与各类数据库连接查询的 SQL语句实现 ;
8其它应用类型的程序。
§ 1.2 Java的特点
Java是一个广泛使用的网络编程语言 ,它是一种新的计算概念。
首先 ,作为一种程序设计语言 ,它简单、面向对象、不依靠于机器的结构、具有可移植性、鲁棒性、安全性、并且提供了并发的机制、具有很高的性能。其次 ,它最大限度地利用了网络 ,Java的小应用程序 (applet)可在网络上传输而不受 CPU和环境的限制。另外 ,Java还提供了丰富的类库 ,使程序设计者可以很方便地建立自己的系统。
下面我们分别从这三个方面来讨论 Java的特点 ,然后通过把 Java与 C,C++相比进一步指出它所具有的优点。
一、 Java语言
Java语言有下面一些特点 :简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性。
:1.简单性
Java语言是一种面向对象的语言 ,它通过提供最基本的方法来完成指定的任务 ,只需理解一些基本的概念 ,就可以用它编写出适合于各种情况的应用程序。 Java略去了运算符重载、多重继续等模糊的概念 ,并且通过实现自动垃圾
收集大大简化了程序设计者的内存治理工作。另外 ,Java也适合于在小型机上运行 ,它的基本解释器及类的支持只有 40KB左右 ,加上标准类库和线程的支持也只有 215KB左右。库和线程的支持也只有 215KB左右。
2.面向对象
Java语言的设计集中于对象及其接口 ,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法 ,实现了模块化和信息隐藏 ;而类则提供了一类对象的原型 ,并且通过继续机制 ,子类可以使用父类
所提供的方法 ,实现了代码的复用。
3.分布性
Java是面向网络的语言。通过它提供的类库可以处理 TCP/IP协议 ,用户可以通过 URL地址在网络上很方便地访问其它对象。
4.鲁棒性
Java在编译和运行程序时 ,都要对可能出现的问题进行检查 ,以消除错误的产生。它提供自动垃圾收集来进行内存治理 ,防止程序员在治理内存时轻易产生的错误。通过集成的面向对象的例外处理机制 ,在编译时,Java提示出可能
出现但未被处理的例外 ,帮助程序员正确地进行选择以防止系统的