收藏 分销(赏)

基于JavaWeb的在线图书订购与打印管理系统外文翻译.pdf

上传人:a199****6536 文档编号:3247859 上传时间:2024-06-26 格式:PDF 页数:27 大小:788.09KB
下载 相关 举报
基于JavaWeb的在线图书订购与打印管理系统外文翻译.pdf_第1页
第1页 / 共27页
基于JavaWeb的在线图书订购与打印管理系统外文翻译.pdf_第2页
第2页 / 共27页
基于JavaWeb的在线图书订购与打印管理系统外文翻译.pdf_第3页
第3页 / 共27页
基于JavaWeb的在线图书订购与打印管理系统外文翻译.pdf_第4页
第4页 / 共27页
基于JavaWeb的在线图书订购与打印管理系统外文翻译.pdf_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、 毕业设计(论文)外文资料翻译 学 院:信息工程学院 专 业:计算机科学与技术 姓 名:XXXXXXXXX 学 号:XXXXXXXXX 外文出处:Cay s.Horstmann Core Java,V olume II,Advanced Features,Eighth Edition 附 件:1.外文资料翻译译文;2.外文原文。指导教师评语:签名:2011年 4 月 25 日 附件 1:外文资料翻译译文 Java 技术介绍 Java 是一种程序设计平台 Java 是一种优秀的程序设计语言。对于一个名副其实的程序设计人员来说,使用 Java 无疑是一个好的选择。有人认为:Java 将有望成为一种

2、最优秀的程序设计语言,但还需要一个相当长的发展时期。一旦一种语言应用于某个领域,与现存代码的相容性问题就摆在了人们的面前。”Java 并不只是一种语言。在此之前出现的那么多种语言也没有能够引起那么大的轰动。Java 是一个完整的平台,有一个庞大的库,其中包含很多可重用的代码和一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾回收等服务的执行环境。作为一名程序设计人员,常常希望能够有一种语言,它具有令人赏心悦目的语法和易于理解的语义(C+不是这样的)。与许多其他的优秀语言一样,Java 恰恰满足了这些要求。有些语言提供了可移植性、垃圾回收等等,但是,没有提供一个大型的库,如果想要有奇特的绘图功

3、能、网络连接功能和数据库存取功能就必须自己动手编写代码。Java 这种功能齐全的出色语言,具有高质量的执行环境以及庞大的库。正是因为它集多种优势于一身,所以对于广大的程序设计人员来说有着不可抗拒的吸引力。JAVA 的特性 1简单性 人们希望构建一个无需深奥的专业训练就可以进行编程的系统,并且要符合当今的 标准惯例。因此,尽管人们发现 C+不太适用,但在设计 Java 的时候还是尽可能地接近 C+,以便系统更易于理解。Java 别除了 C+中许多很少使用、难以理解、易混淆的特性。在目前看来,这些特性带来的麻烦远远大于带来的好处。的确,Java 语法是 C+语法的一个“纯净”版本。这里没有头文件、

4、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等等。(请参看本书各个章节给出的 C+注释,那里比较详细地解释了 Java 与 C+之间的区别。)然而,设计者并没有试图清除 C+中所有不适当的特性。例如,switch 语句的语法在 Java 中就没有改变。如果熟悉C+就会发现可以轻而易举地将它转换成Java,如果已经习惯于可视化的编程环境(例如 Visual Basic),就不会觉得 Java 简单了。Java 有许多奇怪的语法(尽管掌握其要领并不需要很长时间),更重要的是,使用 Java 需要自己编写大量的程序。Visual Basic 的魅力在于它的可视化设计环境几乎自动地为应用程

5、序提供了大量的基础结构。而使用 Java 实现同样的功能却需要手工地编制代码,通常代码量还相当大。然而,已经有一些支持“拖放”风格程序开发的第三方开发环境。简单性的另一个方面是小。Java 的目标之一是支持开发能够在小型机器上独立运行的软件。基本的解释器以及类支持大约仅为 40KB;再加上基础的标准类库和对线程的支持(基本上是一个自含的微内核)大约需要增加 175KB。这是一个了不起的成就。然而,需要注意的是支持图形用户界面(GUI)的类库相当大。2面向对象 简单地讲,面向对象设计是一种程序设计技术。它将重点放在数据(即对象)和对象的接口上。用木匠来打一个比方,一个“面向对象的”木匠始终关注的

6、是所制作的 椅子,第二位才是所使用的工具;一个“非面向对象的”木匠则首先考虑的是所用的工具。在本质上,Java 的面向对象能力与 C+是一样的。在过去的 30 年里,面向对象已经证明了自身的价值,一种现代的程序设计语言不使用面向对象技术简直让人难以置信。的确,Java 的面向对象特性与 C+旗鼓相当。Java 与 C+的主要不同点在于多继承,在 Java 中,取而代之的是简单的接口概念,以及 Java 的元类(metaclass)模型。反射机制以及对象序列化特性使得 Java 更加容易实现持久对象和 GUI 构建器(可以整合外来组件)。3分布式 Java 有一个扩展的例程库,用于处理像 HTT

7、P 和 FTP 这类的 TCP/IP 协议。Java应用程序能够通过 URL 打开和访问网络上的对象,其便利程度如同访问本地文件系统一样。人们已经看到 Java 的网络能力强大且易于使用。任何曾经试图使用其他语言进行网络编程的人都会惊呼 Java 竟然把类似打开 socket 连接这类繁重的任务都变得如此简单。另外,远程方法调用机制使得分布式对象之间可以进行通信。现在有一种独立的体系结构,Java 2 企业版(J2EE),它支持大规模的分布式应用。4健壮性 Java 的设计目标之一在于使用 Java 编写的程序具有多方面的可靠性。Java 投入了大量的精力进行早期的问题检测、后期动态的(运行时

8、)检测,并消除了有出错倾向的状态 Java和C+最大的不同在于 Java采用的指针模型可以消除重写内存和损坏数据的可能性。这个特性非常有用。Java 编译器能够检测许多在其他语言中仅在运行时刻才能够检测出来的问题。至于第二点,对于曾经花费几个小时来检查由于指针 bug而引起内存冲突的人来说,一定很喜欢 Java 的这一特性。如果曾经只使用过 Visual Basic 这类没有显式指针的语言,就会感觉这么说似乎有些小题大做。然而,C 程序员就没有这样幸运了。他们需要利用指针来存取串、数组、对象,甚至文件。在 Visual Basic 中,根本不必使用指针来访问这些实体,也不必关心有关内存分配的问

9、题。另一方面,在没有指针的语言中,许多数据结构很难实现。Java 具有双方的优势。它不需要使用指针构造诸如串、数组这样的结构。如果需要,也能够具有指针的能力,如链表。Java 绝对是安全的,其原因是永远不会存取一个“坏的”指针,造成内存分配的错误,也不必防范内存泄漏。5安全性 Java 适用于网络/分布式环境。为了达到这个目标,在安全方面投入了很大精力。使用 Java 可以构建防病毒、防墓改的系统。事实证明这是正确的。在 Java开发工具箱启用后不久,普林斯顿大学的一些安全专家们发现了在 Java 1.0 中的某些安全特性方面存在着一些非常隐蔽的bug,Sun Microsystems 大力支

10、持对 Java的安全性的研究,制定了供人们使用的规范,实现了虚拟机和安全库,并迅速地处理了所有已知的安全 bug。在任何情况下,蒙骗 Java 的安全机制都是十分困难的。现在,发现 bug 所需的技术性越来越强,数目越来越少。从一开始,Java 就被设计成能够防范各种袭击,包括:禁止运行时堆栈溢出。例如,蠕虫等病毒常用的袭击手段。禁止在自己的处理空间之外破坏内存。未经授权禁止读写文件。许多安全特性相继不断地被加入 Java 中。自从 Java 1.1 问世以来,Java 就有了数字签名类(digitally signed class)的概念(请参看卷 II)。通过数字签名类,可以确定类的作者。

11、如果信任这个类的作者,这个类就可以在你的机器上拥有更多的权限。来自微软的基于 ActiveX 技术的竞争代码传输机制,其安全性完全依赖于数字签名。这显然是不够的,因为微软自身产品的任何用户都可以证实,来自知名提供商的程序会崩溃并对系统产生危害。Java 的安全机制比 ActiveX 要强得多,因为它是在应用程序运行时加以拉制并制止恶意性破坏的。6体系结构中立 编译器生成一个体系结构中立的目标文件格式,这是一种编译过场代码,只要有 Java 运行时系统,就可以在许多处理器上运行。Java 编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易地在任何机

12、器上被解释执行,而且还可以迅速地翻译成本地机器的代码。这并不是什么新的思想。20 多年以前,Niklaus Wirth 最初实现的 Pascal 以及 UCSD Pascal 系统都使用了这种技术。当然,解释字节码肯定要比全速地运行机器指令慢很多。所以说,这是不是一个好的思想还很难讲!然而,虚拟机有一个选项,它可以将执行最频繁的字韦码序列翻译成机器码,这一过程被称为即时编译。这一策略已经被证明十分有效,致使微软的.NET 平台也依赖于虚拟机。虚拟机还有一些其他的优点。虚拟机可以检测指令序列的行为,以增强其安全性。有些程序甚至能够快速地生成字节码,并动态地增强所运行程序的处理能力。7可移植性 与

13、 C 和 C+不同,Java 规范中没有“依赖具体实现”的地方。塞本数据类型的大小以及有关算法都做了明确的说明。例如,Java 中的 int 永远为 32 位的整数,而在 C/C+中,int 可能是 16 位整数、32 位整数,也可能是编译器提供商指定的其他大小。唯一的限制只是 int 类型的大小不能低于 short int,并且不能高于 long int。在 Java 中,数据类型具有固足的大小,们除 J 代消移祖盯竿八大油 ai 土女IWJ*I。-ml R77 数据以固定的格式存储和传输,消除了字节顺序的困扰。字符串是用标准的 Unicode 格式存储的。作为系统的组成部分的类库,定义了可

14、移植的接口。例如,有一个抽象的 Window 类给出了在 UNIX,Windows 和 Macintosh 环境下的不同实现。凡是尝试过的人都知道,要编写一个在 Windows,Macintosh 和 10 种不同风格的、在 UNIX 上看起来都不错的程序有多么困难。Java 1.0 就尝试着做了这么一个壮举,发布了一个将常用的用户界面元素映射到不同平台上的简单工具箱。遗憾的是,花费了大量的心血,却构建了一个在各个系统上都难以让人接受的库(而且,在不同平台的图形实现中有不同的bug)。不过,这毕竟是个开端。对于许多应用问题来说,可移植性比花枝招展的用户界面更加重要。而且这些应用程序从Java

15、的早期版本中获益匪浅。现在,用户界面工具箱已经完全被重写了,不再依赖于主机的用户接口。现在的 Java 版本比早期版本更加稳定,更加吸引人。8解释型 Java 解释器可以在任何移植了解释器的机器上执行 Java 字节码。由于链接是一个更加增量且简便的过程,所以开发过程也变得更加快捷,更加具有探索性。增量链接有其优势,但给开发过程带来的好处显然是言过其实了。在任何情况下,都会觉得 Java 开发工具的速度相当慢。如果习惯于经典的 Microsoft Visual C+环境的速度,就会对 Java 开发环境的性能感到失望。(但是,Visual Studio 的当前版本不像经典的环境那样快捷。无论用

16、什么语言编写程序,都需要向老板申请一台速度更快的计算机,以便运行最新的开发环境。)9高性能 尽管对解释后的字节码性能已经比较满意,但在有些情况下却需要更加高效的性能。字节码可以(在运行时刻)被快速地翻译成运行该应用程序的特定 CPU 的机器码。如果使用解释器执行字节码,根本就不可能用术语“高性能”。然而,在许多平台上,还有另一种编译形式,这就是即时编译器(JIT 编译器)。它的基本工作方式是一次把字节码编译为本地代码,并将结果缓存起来。在需要的时候重新调用。由于这种方式只需要进行一次解释,从而极大地提高了常用代码运行速度。虽然,即时编译器仍然比真正的本地代码编译器慢一些,但是对某些程序来说,能

17、够提高10 倍乃至 20 倍的速度,而且几乎在任何情况下,都比解释器的速度快得多。这个技术始终在不断完善着,或许有一天它能够达到传统编译系统所无法匹敌的性能。例如,即时编译器可以监视哪些代码被频繁地执行,并对其进行优化,以提高程序的运行速度。10多线程 多线程可以带来更好的交互响应和实时行为。如果曾经使用过其他语言编写多线程的应用程序,就会对 Java 多线程处理的便捷性惊叹不已。只要操作系统支持,Java 中的线程就可以利用多个处理器。在底层,主流平台的线程实现机制各不相同,Java 并没有花费太大的力气对此实现平台无关性。在不同的机器上,只是调用多线程的代码完全相同;Java 把多线程的实

18、现交给了底层的操作系统或线程库来完成。(有关线程的详细内容将在卷 II 中介绍。)尽管如此,多线程的简单性是 Java 成为颇具魅力的服务器端开发语言的主要原因之一。11动态性 从各种角度看,Java 与 C 或 C+相比更加具有动态性。它能够适应不断发展的环境。库中可以自由地添加新方法和实例变童,而时客户端却没有任何影响。在 Java中找出运行时刻类型信息十分直观。当需要将某些代码添加到正在运行的程序中时,动态性将是一个非常重要的特性。一个很好的例子是:从 Internet上下载代码,然后在浏览器上运行。在Java 1.0中,不能直接地获取运行时类型信息,而Java的当前版本允许程序员知晓对

19、象的结构和行为。这对于必须在运行时分析对象的系统来说非常有用。这些系统有:Java GUI 构建器、智能调试器、可插入组件以及对象数据库。微软曾经发布了一个叫做 J+的产品,它与 Java 有许多共享的机制。与 Java一样,J+是由虚拟机来执行的,该虚拟机与执行 Java 字节码的 Java 虚拟机相互兼容,但是,当与外部代码有接口时就会出现很多不同之处。基本语言的语法与 Java几乎一样。只是除了与 Windows API 的接口之外,还增加了一些可能具有一定实用性的语言结构。Java 和 J+不仅共享通用的语法,它们的塞本类库(串、实用程序、联网、多线程、数学函数等等)从本质上说也是一致

20、的。然而,图形库、用户界面、远程对象存取的方式则完全不同。为此,微软不再支持 J+,取而代之的是另一种被称为 C#语言。C#与 Java 有很多相似之处,然而使用的却是完全不同的虚拟机。甚至还有一种 J#语言可将 J+的应用迁移到使用 C#的虚拟机上。Java 与 Internet 这里的思想很简单:用户将从 Internet 下载 Java 字节码,并在自己的机器上运行。在网页中运行的 Java 程序称为 applet。为了使用 applet,需要一个启用 Java的 Web 浏览器来执行字节码。因为 Sun 公司只负责发放 Java 源代码的许可证,并坚持不允许对语言和基本类库的结构做出任

21、何修改,因此,Java 的 applet 应该可以运行在任何启用 Java 浏览器上。遗憾的是,实际情况并非如此。各个版本的 Netscape(网景浏览器)和 Internet Explorer(IE 浏览器)运行着不同版本的 Java,其中有些早已过时。这种糟糕的情况导致更加难于利用 Java 最新版本来开发applet。为了摆脱这种局面,Sun开发了Java插件。这就使得Netscape和 Internet Explorer 都可以利用最新的 Java 运行时环境。用户下载一个applet 就如同在网页中嵌入一幅图片。applet 成为了页面的一部分。文本环绕着applet所占据的空间周围

22、。关键一点是图片为活动的。它可以对用户命令做出响应,改变外观,在运行它的计算机与提供它的计算机之间传递数据。applet 显示了分子结构,这将需要相当复杂的计算。在一个网页中,可以利用鼠标进行旋转,调整焦距等操作,以便能够更好地理解分子结构。用静态网页将无法实现这种直接操作,而 applet 却可以达到此目的。可以借助 applet 在网页上增加按钮和输人框。但是,通过拨号连接下载这样的applet速度相当慢。除此之外,还可以使用Dynamic HTML,HTML表单和某种脚本语言(如 JavaScript)完成这类操作。当然,早期的applet主要用于动画,如大家熟悉的旋转球、跳动的卡通字符

23、、疯狂。我们对 JAVA 的误解 下面是我们对 java 的一些误解,这里将给出解释:1)Java 是 HTML 的扩展。Java 是一种程序设计语言;HTML 是一种描述网页结构的方式。除了存在用于放置 Java applet 的 HTML 扩展之外,两者没有任何共同之处。2)使用 XML,就不需要 Java。Java 是一种程序设计语言;XML 是一种描述数据的方式。可以使用任何一种程序设计语言来处理 XML 数据,而 Java API 对处理 XML 提供了很好的支持。此外,许多重要的第三方 XML 工具是采用 Java 编写的.3)Java 是一种非常容易学习的程序设计语言。Java

24、这种功能强大的语言大都不太容易学习。首先,必须将编写玩具式程序的轻松和开发实际项目的艰难区分开来。如何使用 Java 类库将 Java 语言应用到实际中去。Java 类库包含了数千种类和接口与几万种方法。幸运的是,并不需要知晓它们中的每一个,但是要用 Java 解决实际问题,还是需要了解不少内容的。4)Java 将成为适用于所有平台的通用性编程语言。从理论上讲,这是完全有可能的。的确,除了微软之外的每一个厂商都希望如此。然而有很多已经在桌面计算机上工作良好的应用程序,它们不大可能在其他设备或在浏览器中工作的也很正常。同时,在编写这些应用程序时,利用了相应处理器的速度和本地的用户接口库,而且它们

25、已经被移植到所有重要的平台上。这类应用程序包括字处理程序、图片编辑器、Web 浏览器。它们通常是用 C 或 C+编写的,采用 Java 语言进行重新编写似乎对最终的用户不会带来什么特别的好处。5)Java 只不过是另外一种程序设计语言。Java 是一种很好的程序设计语言;很多程序设计人员喜欢 Java 胜过 C,C+十或C#。有上百种好的程序设计语言没有广泛地流行,而带有明显缺陷的语言,如 C 十+和 Visual Basic 却大行其道。这是为什么呢?程序设计语言的成功更多地取决于其支持系统的能力,而不是优美的语法。人们关注是:是否提供了易于实现某些功能的易用、便捷标准库?是否拥有强大的程序

26、设计能力与调试环境工具?语言和工具是否能够与计算机的其他基础结构整合在一起.Java 的成功就是来自于其类库能够让你轻松地完成原本十分艰难的事情。例如,联网、多线程。Java 减少了指针错误,因此使用 Java 编程的效率更高了。但这些并不是 Java 成功的全部原因。6)现在有了 C#,Java 过时了。C#借鉴了 Java 许多好的思想,例如,清晰的程序设计语言、虚拟机和垃圾回收。无论怎样,C#还是保持了一些好的特性,其中最重要的是安全性和平台无关性。人们普遍认为,C#最大的优势是其优良的开发环境。如果再能够与 Windows 捆绑在一起,就更加具有现实意义了。但是,从广义来判定,Java

27、 仍然是大多数开发者选择的语言。7)Java 有专利,应该避免使用。每个人都需要为这个问题做出决定。有时候会因为 Java 的某些问题而感到沮丧,并希望能够拥有一个完全开放的源代码的团队给予救助方案。然而,情况没有这么简单。尽管Sun公司最终控制着Java,但是他们通过“Java Community Process”已经与许多其他的公司联手进行语言修订版的开发及新类库的设计。虚拟机和类库的源代码都可以免费获取,但 Java 程序设计描述是只能够查阅,而不能修改,也不能再发布。想一想开放源代码的那些语言,其实很难说清楚这样做是否更好。最为流行的是“LAMP(Linux,Apache,MySQL

28、和 Perl/PHP/Python)中的三个“P;。这些语言固然有它们的好处,但同时它们混乱的版本变化、有限的类库和开发工具的匾乏也带来了一定的困扰。另一方面,C+和 C#已经独立于厂商的标准协会标准化。我们认为这一过程比JavaCommunity Process 更加透明。然而,结果并不像想象的那样有用。仅仅标准化语言和基类库是不够的。对于实际的程序设计来说,很快会超出字符串、集合和文件的处理范围。对于 C#,微软一再重申:他们将保持大部分的类库不做标准化处理或许未来的 Java 会采用开放源代码方式。但是,就此而言,许多人都相信 Sun公司是 Java 最可信赖的管理员。8)Java 是解

29、释型的,因此对于正式的应用程序而言太慢了。早期的 Java 是解释型的。现在除了像手机这样的“微型”平台之外,Java 虚拟机使用了即时编译器,因此采用 Java 编写的“热点”代码其运行速度与 C+相当。Java 有一些 C+没有的且与虚拟机无关的额外开销。垃圾回收会比手工内存管理稍微慢一些,并且实现同样的功能,Java 程序需要的内存量要比 C+程序大。程序启动可能也会慢一些,特别是大型的程序。另外,Java GUI 要比本地的 GUI 慢一些,因为它们采用与平台无关的方式绘制图形。人们抱怨 Java 比 C+十慢已经有好多年了。但是,今天的计算机比人们发出抱怨的时候已经快了很多很多。一个

30、慢的 Java 程序与几年前相当快的 C+程序相比还是要快一些的。就这一点来说,那些抱怨听起来像狐狸抱怨葡萄酸,并且一些诽谤者已经转过来攻击 Java 用户界面不漂亮而不是攻击速度慢了。9)所有的 Java 程序都是在网页中运行的。所有的 Java applet 都是在网页浏览器中运行的。这也恰恰是 applet 的定义,即一种在网页中运行的 Java 程序。同时,也完全可以编写一个独立的、不依赖于Web 浏览器运行的 Java 程序,并且十分有用。这些程序(通常称为应用程序)是完全可移植的。把代码移到另一台机器上直接运行就行了。由于 Java 与不够成熟的 C十+相比更加便利、出错的可能性更

31、小,因而对于程序设计来说,可谓一种上好的选择。在使用 JDBC 这类的数据库存取工具时,Java 语言就更是责无旁贷了。毫无疑问,Java 是学习程序设计的首选语言。10)Java 程序是主要的安全风险。早期的 Java,有过关于安全系统失效的报道,曾经引起过公众的哗然。大多数安全问题都存在于 Java 的特定浏览器中。研究人员将这视为一种挑战,其含义是努力找出 Java 的漏洞,对 applet 安全模型的强度和复杂度发起挑战。随后,人们很快就解决了引发问题的所有技术因素。据人们所知,所有的实用系统都妥协过。想想看:毫不夸张地说,有数百万种病毒攻击着 Windows 的可执行文件和 Word

32、 宏,这给系统造成了巨大的损害,但却很少有人批评被攻击平台的脆弱。同样,Internet Explorer中的ActiveX机制始终作为被攻击的目标,但由于阻止这种攻击非常简单,所以人们也就懒得将它们公布于众了。有些系统管理员在公司的浏览器中禁用 Java,却允许其用户下载可执行文件、ActiveX 控件和 Word 文档。这是多么荒唐可笑啊!通常,不友好的 Java applet 的袭击的风险大约相当于因飞机失事而遇难的风险;而打开Word文档遭到袭击的风险则相当于步行横穿繁忙的高速公路而遇难的风险。11)JavaScript 是 Java 的简易版。JavaScript 是一种在网页中使用

33、的脚本语言,它是由 Netscape 发明的,原来的名字叫做 LiveScripto JavaScript 的语法类似 Java,除此之外,两者无任何关系(当然,名字有些相像)。JavaScript 的一个子集已经被标准化为 ECMA-262,但在实际工作中,使用的扩展部分没有被标准化,从而导致编写出能够同时运行于Netscape和 Internet Explorer的 JavaScript代码必定受挫。12)使用 Java可以用价值500美元的Internet设备取代电脑。当 Java刚刚刚发布的时候,一些人打赌:肯定会有这样的好事情发生。家庭用户将会放弃功能强大且便利的桌面系统,而使用没有

34、本地存储的网络设备是一种荒谬的想法。我们发现基于 Java 的网络计算机对于利用“零管理”来降低计算机所有者的商业成本来说是一种很好的选择。即便如此,这种好事也没有发生。从另一个方面来说,Java 已经广泛地用在手机上。我们必须承认还没有看到一个运行在手机上的 Java 应用程序是必不可少的。但是,常见的游戏和屏幕保护程序在许多市场上销售得很好。附件 2:外文原文(复印件)Java Technical Description Java as a Programming Platform Java is certainly a good programming language.There is

35、 no doubt that it is one of the better languages available to serious programmers.We think it could potentially have been a great programming language,but it is probably too late for that.Once a language is out in the field,the ugly reality of compatibility with existing code sets in.Java was never

36、just a language.There are lots of programming languages out there,and few of them make much of a splash.Java is a whole platform,with a huge library,containing lots of reusable code,and an execution environment that provides services such as security,portability across operating systems,and automati

37、c garbage collection.As a programmer,you will want a language with a pleasant syntax and comprehensible semantics(i.e.,not C+).Java fits the bill,as do dozens of other fine languages.Some languages give you portability,garbage collection,and the like,but they dont have much of a library,forcing you

38、to roll your own if you want fancy graphics or networking or database access.Well,Java has everythinga good language,a high-quality execution environment,and a vast library.That combination is what makes Java an irresistible proposition to so many programmers.Features of Java 1.Simple We wanted to b

39、uild a system that could be programmed easily without a lot of esoteric training and which leveraged todays standard practice.So even though we found that C+was unsuitable,we designed Java as closely to C+as possible in order to make the system more comprehensible.Java omits many rarely used,poorly

40、understood,confusing features of C+that,in our experience,bring more grief than benefit.The syntax for Java is,indeed,a cleaned-up version of the syntax for C+.There is no need for header files,pointer arithmetic(or even a pointer syntax),structures,unions,operator overloading,virtual base classes,a

41、nd so on.(See the C+notes interspersed throughout the text for more on the differences between Java and C+.)The designers did not,however,attempt to fix all of the clumsy features of C+.For example,the syntax of the switch statement is unchanged in Java.If you know C+,you will find the transition to

42、 the Java syntax easy.If you are used to a visual programming environment(such as Visual Basic),you will not find Java simple.There is much strange syntax(though it does not take long to get the hang of it).More important,you must do a lot more programming in Java.The beauty of Visual Basic is that

43、its visual design environment almost automatically provides a lot of the infrastructure for an application.The equivalent functionality must be programmed manually,usually with a fair bit of code,in Java.There are,however,third-party development environments that provide drag-and-drop-style program

44、development.Another aspect of being simple is being small.One of the goals of Java is to enable the construction of software that can run stand-alone in small machines.The size of the basic interpreter and class support is about 40K bytes;adding the basic standard libraries and thread support(essent

45、ially a self-contained microkernel)adds an additional 175K.2.Object Oriented Simply stated,object-oriented design is a technique for programming that focuses on the data(=objects)and on the interfaces to that object.To make an analogy with carpentry,an object-oriented carpenter would be mostly conce

46、rned with the chair he was building,and secondarily with the tools used to make it;a non-object-oriented carpenter would think primarily of his tools.The object-oriented facilities of Java are essentially those of C+.Object orientation has proven its worth in the last 30 years,and it is inconceivabl

47、e that a modern programming language would not use it.Indeed,the object-oriented features of Java are comparable to those of C+.The major difference between Java and C+lies in multiple inheritance,which Java has replaced with the simpler concept of interfaces,and in the Java metaclass model.The refl

48、ection mechanism and object serialization feature make it much easier to implement persistent objects and GUI builders that can integrate off-the-shelf components.3.Distributed Java has an extensive library of routines for coping with TCP/IP protocols like HTTP and FTP.Java applications can open and

49、 access objects across the Net via URLs with the same ease as when accessing a local file system.We have found the networking capabilities of Java to be both strong and easy to use.Anyone who has tried to do Internet programming using another language will revel in how simple Java makes onerous task

50、s like opening a socket connection.(We cover networking in Volume 2 of this book.)The remote method invocation mechanism enables communication between distributed objects(also covered in Volume 2).There is now a separate architecture,the Java 2 Enterprise Edition(J2EE),that supports very large scale

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服