基于JavaWeb的在线图书订购与打印管理系统外文翻译.doc
《基于JavaWeb的在线图书订购与打印管理系统外文翻译.doc》由会员分享,可在线阅读,更多相关《基于JavaWeb的在线图书订购与打印管理系统外文翻译.doc(27页珍藏版)》请在沃文网上搜索。
1、毕业设计(论文)外文资料翻译学 院: 信息工程学院 专 业: 计算机科学与技术 姓 名: XXXXXXXXX 学 号: XXXXXXXXX 外文出处: Cay s.Horstmann Core Java ,VolumeII, 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的魅力在于它的可视化设计环境几乎自动地为应用程序提供了大量的基础结构。而使用Java实现同样的功能却需要手
5、工地编制代码,通常代码量还相当大。然而,已经有一些支持“拖放”风格程序开发的第三方开发环境。 简单性的另一个方面是小。Java的目标之一是支持开发能够在小型机器上独立运行的软件。基本的解释器以及类支持大约仅为40KB;再加上基础的标准类库和对线程的支持(基本上是一个自含的微内核)大约需要增加175KB。这是一个了不起的成就。然而,需要注意的是支持图形用户界面(GUI)的类库相当大。2面向对象简单地讲,面向对象设计是一种程序设计技术。它将重点放在数据(即对象)和对象的接口上。用木匠来打一个比方,一个“面向对象的”木匠始终关注的是所制作的 椅子,第二位才是所使用的工具;一个“非面向对象的”木匠则首
6、先考虑的是所用的工具。在本质上,Java的面向对象能力与C+是一样的。在过去的30年里,面向对象已经证明了自身的价值,一种现代的程序设计语言不使用面向对象技术简直让人难以置信。的确,Java的面向对象特性与C+旗鼓相当。Java与C+的主要不同点在于多继承,在Java中,取而代之的是简单的接口概念,以及Java的元类(metaclass)模型。反射机制以及对象序列化特性使得Java更加容易实现持久对象和GUI构建器(可以整合外来组件)。3分布式Java有一个扩展的例程库,用于处理像HTTP和FTP这类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便利程度如同访问本
7、地文件系统一样。 人们已经看到Java的网络能力强大且易于使用。任何曾经试图使用其他语言进行网络编程的人都会惊呼Java竟然把类似打开socket连接这类繁重的任务都变得如此简单。另外,远程方法调用机制使得分布式对象之间可以进行通信。 现在有一种独立的体系结构,Java 2企业版(J2EE ),它支持大规模的分布式应用。4健壮性Java的设计目标之一在于使用Java编写的程序具有多方面的可靠性。Java投入了大量的精力进行早期的问题检测、后期动态的(运行时)检测,并消除了有出错倾向的状态Java和C+最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。这个特性非常有用。Ja
8、va编译器能够检测许多在其他语言中仅在运行时刻才能够检测出来的问题。至于第二点,对于曾经花费几个小时来检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性。如果曾经只使用过Visual Basic这类没有显式指针的语言,就会感觉这么说似乎有些小题大做。然而,C程序员就没有这样幸运了。他们需要利用指针来存取串、数组、对象,甚至文件。在Visual Basic中,根本不必使用指针来访问这些实体,也不必关心有关内存分配的问题。另一方面,在没有指针的语言中,许多数据结构很难实现。Java具有双方的优势。它不需要使用指针构造诸如串、数组这样的结构。如果需要,也能够具有指针的能力,如链表
9、。Java绝对是安全的,其原因是永远不会存取一个“坏的”指针,造成内存分配的错误,也不必防范内存泄漏。5安全性Java适用于网络/分布式环境。为了达到这个目标,在安全方面投入了很大精力。 使用Java可以构建防病毒、防墓改的系统。事实证明这是正确的。在Java开发工具箱启用后不久,普林斯顿大学的一些安全专家们发现了在Java 1.0中的某些安全特性方面存在着一些非常隐蔽的bug, Sun Microsystems大力支持对Java的安全性的研究,制定了供人们使用的规范,实现了虚拟机和安全库,并迅速地处理了所有已知的安全bug。在任何情况下,蒙骗Java的安全机制都是十分困难的。现在,发现bug
10、所需的技术性越来越强,数目越来越少。 从一开始,Java就被设计成能够防范各种袭击,包括:禁止运行时堆栈溢出。例如,蠕虫等病毒常用的袭击手段。禁止在自己的处理空间之外破坏内存。未经授权禁止读写文件。许多安全特性相继不断地被加入Java中。自从Java 1.1问世以来,Java就有了数字签名类(digitally signed class)的概念(请参看卷II)。通过数字签名类,可以确定类的作者。如果信任这个类的作者,这个类就可以在你的机器上拥有更多的权限。来自微软的基于ActiveX技术的竞争代码传输机制,其安全性完全依赖于数字签名。这显然是不够的,因为微软自身产品的任何用户都可以证实,来自知
11、名提供商的程序会崩溃并对系统产生危害。Java的安全机制比ActiveX要强得多,因为它是在应用程序运行时加以拉制并制止恶意性破坏的。6体系结构中立编译器生成一个体系结构中立的目标文件格式,这是一种编译过场代码,只要有Java运行时系统,就可以在许多处理器上运行。Java编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易地在任何机器上被解释执行,而且还可以迅速地翻译成本地机器的代码。这并不是什么新的思想。20多年以前,Niklaus Wirth最初实现的Pascal以及UCSD Pascal系统都使用了这种技术。当然,解释字节码肯定要比全速地运行
12、机器指令慢很多。所以说,这是不是一个好的思想还很难讲!然而,虚拟机有一个选项,它可以将执行最频繁的字韦码序列翻译成机器码,这一过程被称为即时编译。这一策略已经被证明十分有效,致使微软的.NET平台也依赖于虚拟机。虚拟机还有一些其他的优点。虚拟机可以检测指令序列的行为,以增强其安全性。有些程序甚至能够快速地生成字节码,并动态地增强所运行程序的处理能力。7可移植性与C和C+不同,Java规范中没有“依赖具体实现”的地方。塞本数据类型的大小以及有关算法都做了明确的说明。例如,Java中的int永远为32位的整数,而在C/C+中,int可能是16位整数、32位整数,也可能是编译器提供商指定的其他大小。
13、唯一的限制只是int类型的大小不能低于short int,并且不能高于long int。在Java中,数据类型具有固足的大小,们除J代消移祖盯竿八大油ai土女IWJ*I。-ml R77数据以固定的格式存储和传输,消除了字节顺序的困扰。字符串是用标准的Unicode格式存储的。作为系统的组成部分的类库,定义了可移植的接口。例如,有一个抽象的Window类给出了在UNIX, Windows和Macintosh环境下的不同实现。凡是尝试过的人都知道,要编写一个在Windows, Macintosh和10种不同风格的、在UNIX上看起来都不错的程序有多么困难。Java 1.0就尝试着做了这么一个壮举,
14、发布了一个将常用的用户界面元素映射到不同平台上的简单工具箱。遗憾的是,花费了大量的心血,却构建了一个在各个系统上都难以让人接受的库(而且,在不同平台的图形实现中有不同的bug)。不过,这毕竟是个开端。对于许多应用问题来说,可移植性比花枝招展的用户界面更加重要。而且这些应用程序从Java的早期版本中获益匪浅。现在,用户界面工具箱已经完全被重写了,不再依赖于主机的用户接口。现在的Java版本比早期版本更加稳定,更加吸引人。8解释型Java解释器可以在任何移植了解释器的机器上执行Java字节码。由于链接是一个更加增量且简便的过程,所以开发过程也变得更加快捷,更加具有探索性。增量链接有其优势,但给开发
15、过程带来的好处显然是言过其实了。在任何情况下,都会觉得Java开发工具的速度相当慢。如果习惯于经典的Microsoft Visual C+环境的速度,就会对Java开发环境的性能感到失望。(但是,Visual Studio的当前版本不像经典的环境那样快捷。无论用什么语言编写程序,都需要向老板申请一台速度更快的计算机,以便运行最新的开发环境。)9高性能尽管对解释后的字节码性能已经比较满意,但在有些情况下却需要更加高效的性能。字节码可以(在运行时刻)被快速地翻译成运行该应用程序的特定CPU的机器码。如果使用解释器执行字节码,根本就不可能用术语“高性能”。然而,在许多平台上,还有另一种编译形式,这就
16、是即时编译器(JIT编译器)。它的基本工作方式是一次把字节码编译为本地代码,并将结果缓存起来。在需要的时候重新调用。由于这种方式只需要进行一次解释,从而极大地提高了常用代码运行速度。虽然,即时编译器仍然比真正的本地代码编译器慢一些,但是对某些程序来说,能够提高10倍乃至20倍的速度,而且几乎在任何情况下,都比解释器的速度快得多。这个技术始终在不断完善着,或许有一天它能够达到传统编译系统所无法匹敌的性能。例如,即时编译器可以监视哪些代码被频繁地执行,并对其进行优化,以提高程序的运行速度。10多线程多线程可以带来更好的交互响应和实时行为。 如果曾经使用过其他语言编写多线程的应用程序,就会对Java
17、多线程处理的便捷性惊叹不已。只要操作系统支持,Java中的线程就可以利用多个处理器。在底层,主流平台的线程实现机制各不相同,Java并没有花费太大的力气对此实现平台无关性。在不同的机器上,只是调用多线程的代码完全相同;Java把多线程的实现交给了底层的操作系统或线程库来完成。(有关线程的详细内容将在卷II中介绍。)尽管如此,多线程的简单性是Java成为颇具魅力的服务器端开发语言的主要原因之一。11动态性从各种角度看,Java与C或C+相比更加具有动态性。它能够适应不断发展的环境。库中可以自由地添加新方法和实例变童,而时客户端却没有任何影响。在Java中找出运行时刻类型信息十分直观。当需要将某些
18、代码添加到正在运行的程序中时,动态性将是一个非常重要的特性。一个很好的例子是:从Internet上下载代码,然后在浏览器上运行。在Java 1.0中,不能直接地获取运行时类型信息,而Java的当前版本允许程序员知晓对象的结构和行为。这对于必须在运行时分析对象的系统来说非常有用。这些系统有:Java GUI构建器、智能调试器、可插入组件以及对象数据库。微软曾经发布了一个叫做J+的产品,它与Java有许多共享的机制。与Java一样,J+是由虚拟机来执行的,该虚拟机与执行Java字节码的Java虚拟机相互兼容,但是,当与外部代码有接口时就会出现很多不同之处。基本语言的语法与Java几乎一样。只是除了
19、与Windows API的接口之外,还增加了一些可能具有一定实用性的语言结构。Java和J+不仅共享通用的语法,它们的塞本类库(串、实用程序、联网、多线程、数学函数等等)从本质上说也是一致的。然而,图形库、用户界面、远程对象存取的方式则完全不同。为此,微软不再支持J+,取而代之的是另一种被称为C#语言。C#与Java有很多相似之处,然而使用的却是完全不同的虚拟机。甚至还有一种J#语言可将J+的应用迁移到使用C#的虚拟机上。Java与Internet这里的思想很简单:用户将从Internet下载Java字节码,并在自己的机器上运行。在网页中运行的Java程序称为applet。为了使用applet
20、,需要一个启用Java的Web浏览器来执行字节码。因为Sun公司只负责发放Java源代码的许可证,并坚持不允许对语言和基本类库的结构做出任何修改,因此,Java的applet应该可以运行在任何启用Java浏览器上。遗憾的是,实际情况并非如此。各个版本的Netscape(网景浏览器)和Internet Explorer (IE浏览器)运行着不同版本的Java,其中有些早已过时。这种糟糕的情况导致更加难于利用Java最新版本来开发applet。为了摆脱这种局面,Sun开发了Java插件。这就使得Netscape和Internet Explorer都可以利用最新的Java运行时环境。 用户下载一个a
21、pplet就如同在网页中嵌入一幅图片。applet成为了页面的一部分。文本环绕着applet所占据的空间周围。关键一点是图片为活动的。它可以对用户命令做出响应,改变外观,在运行它的计算机与提供它的计算机之间传递数据。 applet显示了分子结构,这将需要相当复杂的计算。在一个网页中,可以利用鼠标进行旋转,调整焦距等操作,以便能够更好地理解分子结构。用静态网页将无法实现这种直接操作,而applet却可以达到此目的。可以借助applet在网页上增加按钮和输人框。但是,通过拨号连接下载这样的applet速度相当慢。除此之外,还可以使用Dynamic HTML, HTML表单和某种脚本语言(如Java
22、Script)完成这类操作。当然,早期的applet主要用于动画,如大家熟悉的旋转球、跳动的卡通字符、疯狂。我们对JAVA的误解下面是我们对java的一些误解,这里将给出解释:1)Java是HTML的扩展。Java是一种程序设计语言;HTML是一种描述网页结构的方式。除了存在用于放置Java applet的HTML扩展之外,两者没有任何共同之处。2)使用XML,就不需要Java。Java是一种程序设计语言;XML是一种描述数据的方式。可以使用任何一种程序设计语言来处理XML数据,而Java API对处理XML提供了很好的支持。此外,许多重要的第三方XML工具是采用Java编写的.3) Java
23、是一种非常容易学习的程序设计语言。 Java这种功能强大的语言大都不太容易学习。首先,必须将编写玩具式程序的轻松和开发实际项目的艰难区分开来。如何使用Java类库将Java语言应用到实际中去。Java类库包含了数千种类和接口与几万种方法。幸运的是,并不需要知晓它们中的每一个,但是要用Java解决实际问题,还是需要了解不少内容的。4) Java将成为适用于所有平台的通用性编程语言。从理论上讲,这是完全有可能的。的确,除了微软之外的每一个厂商都希望如此。然而有很多已经在桌面计算机上工作良好的应用程序,它们不大可能在其他设备或在浏览器中工作的也很正常。同时,在编写这些应用程序时,利用了相应处理器的速
24、度和本地的用户接口库,而且它们已经被移植到所有重要的平台上。这类应用程序包括字处理程序、图片编辑器、Web浏览器。它们通常是用C或C+编写的,采用Java语言进行重新编写似乎对最终的用户不会带来什么特别的好处。5) Java只不过是另外一种程序设计语言。Java是一种很好的程序设计语言;很多程序设计人员喜欢Java胜过C, C+十或C#。有上百种好的程序设计语言没有广泛地流行,而带有明显缺陷的语言,如C十+和Visual Basic却大行其道。这是为什么呢?程序设计语言的成功更多地取决于其支持系统的能力,而不是优美的语法。人们关注是:是否提供了易于实现某些功能的易用、便捷标准库?是否拥有强大的
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 JavaWeb 在线 图书 订购 打印 管理 系统 外文 翻译
