Java技术介绍------外文翻译Word格式文档下载.docx
- 文档编号:13092173
- 上传时间:2022-10-04
- 格式:DOCX
- 页数:29
- 大小:35.90KB
Java技术介绍------外文翻译Word格式文档下载.docx
《Java技术介绍------外文翻译Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Java技术介绍------外文翻译Word格式文档下载.docx(29页珍藏版)》请在冰豆网上搜索。
签名:
2011年4月25日
附件1:
外文资料翻译译文
Java技术介绍
Java是一种程序设计平台
Java是一种优秀的程序设计语言。
对于一个名副其实的程序设计人员来说,使用Java无疑是一个好的选择。
有人认为:
Java将有望成为一种最优秀的程序设计语言,但还需要一个相当长的发展时期。
一旦一种语言应用于某个领域,与现存代码的相容性问题就摆在了人们的面前。
”
Java并不只是一种语言。
在此之前出现的那么多种语言也没有能够引起那么大的轰动。
Java是一个完整的平台,有一个庞大的库,其中包含很多可重用的代码和一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾回收等服务的执行环境。
作为一名程序设计人员,常常希望能够有一种语言,它具有令人赏心悦目的语法和易于理解的语义(C++不是这样的)。
与许多其他的优秀语言一样,Java恰恰满足了这些要求。
有些语言提供了可移植性、垃圾回收等等,但是,没有提供一个大型的库,如果想要有奇特的绘图功能、网络连接功能和数据库存取功能就必须自己动手编写代码。
Java这种功能齐全的出色语言,具有高质量的执行环境以及庞大的库。
正是因为它集多种优势于一身,所以对于广大的程序设计人员来说有着不可抗拒的吸引力。
JAVA的特性
1.简单性
人们希望构建一个无需深奥的专业训练就可以进行编程的系统,并且要符合当今的标准惯例。
因此,尽管人们发现C++不太适用,但在设计Java的时候还是尽可能地接近C++,以便系统更易于理解。
Java别除了C++中许多很少使用、难以理解、易混淆的特性。
在目前看来,这些特性带来的麻烦远远大于带来的好处。
的确,Java语法是C++语法的一个“纯净”版本。
这里没有头文件、指针运
算(甚至指针语法)、结构、联合、操作符重载、虚基类等等。
(请参看本书各个章节给出的C++注释,那里比较详细地解释了Java与C++之间的区别。
)然而,设计者并没有试图清除C++中所有不适当的特性。
例如,switch语句的语法在Java中就没有改变。
如果熟悉C++就会发现可以轻而易举地将它转换成Java,
如果已经习惯于可视化的编程环境(例如VisualBasic),就不会觉得Java简单了。
Java有许多奇怪的语法(尽管掌握其要领并不需要很长时间),更重要的是,使用Java需要自己编写大量的程序。
VisualBasic的魅力在于它的可视化设计环境几乎自动地为应用程序提供了大量的基础结构。
而使用Java实现同样的功能却需要手工地编制代码,通常代码量还相当大。
然而,已经有一些支持“拖放”风格程序开发的第三方开发环境。
简单性的另一个方面是小。
Java的目标之一是支持开发能够在小型机器上独立运行的软件。
基本的解释器以及类支持大约仅为40KB;
再加上基础的标准类库和对线程的支持(基本上是一个自含的微内核)大约需要增加175KB。
这是一个了不起的成就。
然而,需要注意的是支持图形用户界面(GUI)的类库相当大。
2.面向对象
简单地讲,面向对象设计是一种程序设计技术。
它将重点放在数据(即对象)和对象的接口上。
用木匠来打一个比方,一个“面向对象的”木匠始终关注的是所制作的 椅子,第二位才是所使用的工具;
一个“非面向对象的”木匠则首先考虑的是所用的工具。
在本质上,Java的面向对象能力与C++是一样的。
在过去的30年里,面向对象已经证明了自身的价值,一种现代的程序设计语言不使用面向对象技术简直让人难以置信。
的确,Java的面向对象特性与C++旗鼓相当。
Java与C++的主要不同点在于多继承,在Java中,取而代之的是简单的接口概念,以及Java的元类(metaclass)模型。
反射机制以及对象序列化特性使得Java更加容易实现持久对象和GUI构建器
(可以整合外来组件)。
3.分布式
Java有一个扩展的例程库,用于处理像HTTP和FTP这类的TCP/IP协议。
Java应用程序能够通过URL打开和访问网络上的对象,其便利程度如同访问本地文件系统一样。
人们已经看到Java的网络能力强大且易于使用。
任何曾经试图使用其他语言进行网络编程的人都会惊呼Java竟然把类似打开socket连接这类
繁重的任务都变得如此简单。
另外,远程方法调用机制使得分布式对象之间可以进行通信。
现在有一种独立的体系结构,Java2企业版(J2EE),它支持大规模的分布式应用。
4.健壮性
Java的设计目标之一在于使用Java编写的程序具有多方面的可靠性。
Java投入了大量的精力进行早期的问题检测、后期动态的(运行时)检测,并消除了有出错倾向的状态……
Java和C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。
这个特性非常有用。
Java编译器能够检测许多在其他语言中仅在运行时刻才能够检测出来的问题。
至于第二点,对于曾经花费几个小时来检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性。
如果曾经只使用过VisualBasic这类没有显式指针的语言,就会感觉这么说似乎有些小题大做。
然而,C程序员就没有这样幸运了。
他们需要利用指针来存取串、数组、对象,甚至文件。
在Visual Basic中,根本不必使用指针来访问这些实体,也不必关心有关内存分配的问题。
另一方面,在没有指针的语言中,许多数据结构很难实现。
Java具有双方的优势。
它不需要使用指针构造诸如串、数组这样的结构。
如果需要,也能够具有指针的能力,如链表。
Java绝对是安全的,其原因是永远不会存取一个“坏的”指针,造成内存分配的错误,也不必防范内存泄漏。
5.安全性
Java适用于网络/分布式环境。
为了达到这个目标,在安全方面投入了很大精力。
使用Java可以构建防病毒、防墓改的系统。
事实证明这是正确的。
在Java开发工具箱启用后不久,普林斯顿大学的一些安全专家们发现了在Java1.0中的某些安全特性方面存在着一些非常隐蔽的bug,SunMicrosystems大力支持对
Java的安全性的研究,制定了供人们使用的规范,实现了虚拟机和安全库,并迅速地处理了所有已知的安全bug。
在任何情况下,蒙骗Java的安全机制都是十分困难的。
现在,发现bug所需的技术性越来越强,数目越来越少。
从一开始,
Java就被设计成能够防范各种袭击,包括:
·
禁止运行时堆栈溢出。
例如,蠕虫等病毒常用的袭击手段。
禁止在自己的处理空间之外破坏内存。
未经授权禁止读写文件。
许多安全特性相继不断地被加入Java中。
自从Java1.1问世以来,Java就有了数字签名类(digitallysignedclass)的概念(请参看卷II)。
通过数字签名类,可以确定类的作者。
如果信任这个类的作者,这个类就可以在你的机器上拥有更多的权限。
来自微软的基于ActiveX技术的竞争代码传输机制,其安全性完全依赖于数字签名。
这显然是不够的,因为微软自身产品的任何用户都可以证实,来自知名提供商的程序会崩溃并对系统产生危害。
Java的安全机制比ActiveX要强得多,因为它是在应用程序运行时加以拉制并制止恶意性破坏的。
6.体系结构中立
编译器生成一个体系结构中立的目标文件格式,这是一种编译过场代码,只要有Java运行时系统,就可以在许多处理器上运行。
Java编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性。
精心设计的字节码不仅可以很容易地在任何机器上被解释执行,而且还可以迅速地翻译成本地机器的代码。
这并不是什么新的思想。
20多年以前,Niklaus Wirth最初实现的Pascal以及UCSDPascal系统都使用了这种技术。
当然,解释字节码肯定要比全速地运行机器
指令慢很多。
所以说,这是不是一个好的思想还很难讲!
然而,虚拟机有一个选项,它可以将执行最频繁的字韦码序列翻译成机器码,这一过程被称为即时编译。
这
一策略已经被证明十分有效,致使微软的.NET平台也依赖于虚拟机。
虚拟机还有一些其他的优点。
虚拟机可以检测指令序列的行为,以增强其安全性。
有些程序甚至能够快速地生成字节码,并动态地增强所运行程序的处理能力。
7.可移植性
与C和C++不同,Java规范中没有“依赖具体实现”的地方。
塞本数据类型的大小以及有关算法都做了明确的说明。
例如,Java中的int永远为32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商指定的其他大小。
唯一的限制只是int类型的大小不能低于short int,并且不能高于long int。
在Java中,数据类型具有固足的大小,们除J代消移祖盯竿八大油
a'
i土女IWJ*I。
-mlR77数据以固定的格式存储和传输,消除了字节顺序的困扰。
字符串是用标准的Unicode格式存储的。
作为系统的组成部分的类库,定义了可移植的接口。
例如,有一个抽象的Window类给出了在UNIX, Windows和
Macintosh环境下的不同实现。
凡是尝试过的人都知道,要编写一个在Windows,Macintosh和10种不同风格的、在UNIX上看起来都不错的程序有多么困难。
Java1.0就尝试着做了这么一个壮举,发布了一个将常用的用户界面元素映射到不同平台上的简单工具箱。
遗憾
的是,花费了大量的心血,却构建了一个在各个系统上都难以让人接受的库(而且,在不同平台的图形实现中有不同的bug)。
不过,这毕竟是个开端。
对于许多应用问题来说,可移植性比花枝招展的用户界面更加重要。
而且这些应用程序从Java的早期版本中获益匪浅。
现在,用户界面工具箱已经完全被重写了,不再依赖于
主机的用户接口。
现在的Java版本比早期版本更加稳定,更加吸引人。
8.解释型
Java解释器可以在任何移植了解释器的机器上执行Java字节码。
由于链接是一个更加增量且简便的过程,所以开发过程也变得更加快捷,更加具有探索性。
增量链接有其优势,但给开发过程带来的好处显然是言过其实了。
在任何情况下,都会觉得Java开发工具的速度相当慢。
如果习惯于经典的MicrosoftVisualC++环境的速度,就会对Java开发环境的性能感到失望。
(但是,VisualStudio的当前版本不像经典的环境那样快捷。
无论用什么语言编写程序,都需要向老板申请一台速度更快的计算机,以便运行最新的开发环境。
)
9.高性能
尽管对解释后的字节码性能已经比较满意,但在有些情况下却需要更加高效的性能。
字节码可以(在运行时刻)被快速地翻译成运行该应用程序的特定CPU的机器码。
如果使用解释器执行字节码,根本就不可能用术语“高性能”。
然而,在许多平台上,还有另一种编译形式,这就是即时编译器(JIT编译器)。
它的基本工作方式是一次把字节码编译为本地代码,并将结果缓存起来。
在需要的时候重新调用。
由于这种方式只
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 技术 介绍 外文 翻译