doc Java的历史(外文翻译) ㊣ 精品文档 值得下载

🔯 格式:DOC | ❒ 页数:23 页 | ⭐收藏:0人 | ✔ 可以修改 | @ 版权投诉 | ❤️ 我的浏览 | 上传时间:2022-06-25 20:10

Java的历史(外文翻译)

算机平台执行应当包括内建的对计算机网络的支持应当被设计成安全地执行远端代码应当易于使用,并借鉴以前那些面向对象语言如的长处。技术主要分成几个部分语言运行环境类库。般情况下说时并不区分指的是哪个部分。在版本时,做了重大改变,太阳公司并版本重命名为。面向对象的特点之就是面向对象,是程序设计方法的种。面向对象程序设计语言的核心之就是开发者在设计软件的时候可以使用自定义的类型和关联操作。代码和数据的实际集合体叫做对象。个对象可以想像成绑定了很多行为代码和状态数据的物体。对于数据结构的改变需要和代码进行通信然后操作,反之亦然。面向对象设计让大型软件工程的计划和设计变得更容易管理,能增强工程的健康度,减少失败工程的数量。面向对象设计另外个目标就是能产生很多的有关联的类,可以让软件的再开发变得简单。举例来说,很多软件工程都有同样的功能,尤其是很多应用了同原理组织的软件工程。软件的二次开发者想自己为软件开发插件以增强功能的时候,绝对不想看到混乱的开发代码和管理计划。面向对象的目的就是不生产难懂且难以使用的代码,为软件各个功能群之间创建有效的通信通道。很多开源软件社区正在计划给软件作者提供更多的类来让软件的二次开发变得简便。跨平台性语言的第二个特性就是跨平台性,也就是说使用语言编写的程序可以在编译后不用经过任何更改,就能在任何硬件设备条件下运行。这个特性经常被称为次编译,到处运行。执行应用程序必须安装,内部有个虚拟机,以及些标准的类库。通过的虚拟机才能在电脑系统执行应用程序,这与的情况样,所以电脑上没有安装,那么这些程序将不能够执行。实现跨平台性的方法是大多数编译器在进行语言程序的编码时候会生成个用字节码写成的半成品,这个半成品会在虚拟机解释层的帮助下运行,虚拟机会把它转换成当前所处硬件平台的原始代码。之后,虚拟机会打开标准库,进行数据图片线程和网络的访问工作。主要注意的是,尽管已经存在个进行代码翻译的解释层,有些时候的字节码代码还是会被编译器进行二次编译。有些编译器,比如,可以自动生成原始代码而不需要解释层。但是这些编译器所生成的代码只能应用于特定平台。并且目前只支持部分的。甲骨文公司对于的许可是全兼容的,这也导致了微软和升阳关于微软的程序不支持和接口并且增加特性为己所用的法律争端。升阳最终赢得了官司,获得了大约两千万美元的赔偿,法院强制要求微软执行升阳公司关于的许可要求。作为回应,微软不再在系统中捆绑,最新的版本,和版本也不再提供对于应用程序和控件的支持。但是升阳公司和其他使用运行时系统的公司对于微软的操作对用户提供无偿的第三方插件和程序支持。语言使用解释层最初是为了轻巧性。所以这些程序的运行效率比语言和要低很多,用户也对此颇有微词。很多最近的调查显示的程序运行速度比几年前要高出许多,有些同样功能的程序的效率甚至超过了和语言编写的程序。语言在最开始应用的时候是没有解释层的,所有需要编译的代码都直接转换成机器的原始代码。这样做的后果就是获得了最佳的性能,但是程序臃肿异常。从技术开始,的程序都经过次转换之后才变成机器码。很多老牌的第三方虚拟机都使用种叫做动态编译的技术,也就是说虚拟机实时监测和分析程序的运行行为,同时选择性地对程序所需要的部分进行编译和优化。所有这些技术都改善了代码的运行速度,但是又不会让程序的体积变得失常。程序的轻便性事实上是软件编写很难达到的个目标,虽然成功地实现了次编译,到处运行,但是由于平台和平台之间的差异,所编写的程序在转换代码的时候难免会出现微小的不可察觉的和意外。有些程序员对此非常头疼,他们嘲笑的程序不是次编译,到处运行,而是次编译,到处调试。平台无关性让在服务器端软件领域非常成功。很多服务器端软件都使用或相关技术创建。的性能和复杂性关于的批评试图通过新的方式解决软件编写的复杂性。很多人认为语言做到了它承诺的切。但是并不是门完美的语言。整体性问题并不是所有的工程和环境需要企业级别的复杂性,比如个简单的个人网站或者独自编程的程序师所写的程序。这些程序师会发现的复杂管理对于自己要做的程序来说过于强大了。些人觉得在面向对象上面做的没有和纯粹。但是最新出现的用实现的语言解决了这些问题。作为种已经创建的新技术,显然综合了很多语言的特性,比如语言等等。些对于的评论认为的不变性在动摇。语言问题有些程序师不喜欢原始类型和类的分离,尤其是那些曾经使用过和的程序师。的代码相对于其他的代码来说过于冗长,这与它的轻便化声明相违背。是种单层继承的语言。这也导致了程序师在试图使用多重继承时候的不便,而很多语言都可以使用这个特性。但是可以使用接口类,把多重继承可能导致的风险减少到最小。不支持运算符重载,这是为了防止运算符重载使得代码的功能变得不清晰。但是用实现的语言可以进行运算符重载。过去对于文本的操作和其他语言,比如和相比差的较多,但在版本时候引入了正则表达式。类库问题使用平台编写的带有图形用户接口的程序和其他原始程序非常不同。选用工具包编写程序的程序师看到的都是原始接口,而且也无法获得先进的编程支持,如果使用的话,就要提供每个平台上面所需的,这将是项庞大的工程。则是完全用语言所写的程序,避免了接口元素重复的问题,只使用所有平台都支持的最基本的绘图机制。但是很多用户不知道如何在风格和风格之间进行转换,结果造成了程序的接口在很多程序中非常特殊。苹果电脑已经提供了优化过的运行时程序,包含了的经典接口风格。性能问题由于编译器和虚拟机的不同对代码的性能影响比语言本身的影响大的多,所以统讨论的程序的性能经常是有误导性的。据的数据,在同样的硬件上年时的版本的性能是年的版本的十倍左右。见东京研究院的数据而即使是在同时期,不同公司的和的性能也不样,比如等公司都有自己开发的和。语言的些特性不可避免的有额外的性能代价,例如数组范围检查运行时类型检查等等。程序的性能还会因为不同的动态复杂性和垃圾处理机制使用的多少而各有不同。如果的实现比较优化的话,那么这些功能甚至可以增加存储器分配的性能。这和总是使用或者托管的程序的情况类似。尽管如此,仍然有许多人认为的性能低。这部分归因于公司最初的实现使用未优化的解释机制来运行字节码。些新版本的使用编译器,在加载字节码的时候将其编译成针对运行环境的本地代码来实现些本地编译器的优化特性。机制和本地编译的性能比较仍旧是个有争议的话题。编译需要很多时间,对于运行时间不长或者代码很多的大型程序并不适宜。但是不算编译阶段的话,程序的运行性能在很多下可以和本地编译的程序争短长,甚至在些计算比较密集的数值计算领域也是这样。目前,已经使用更先进的技术来代替技术,的性能有了更进步的提升。另外,在使用选项运行程序时,也可以对进行更深入的优化,比如在运行时将调用较多的方法内联到程序中来提高运行速度,这就是所谓的动态优化,而本地编译器是无法做到这点的这也是些代码比对应用等语言编写的本地代码运行的更快的原因之。微软的平台也使用编译器,所以也有类似问题。的设计目的主要是安全性和可携性,所以对于些特性,比如对硬件架构和存储器地址访问的直接访问都被去除了。如果需要间接调用这些底层功能的话,就需要使用本地接口来调用本地代码,而间接访问意味着频繁调用这些特性时性能损失会很大,微软的平台也有这样的问题。所以到目前为止,性能敏感的代码,例如驱动程序和视频游戏,还是大多使用本地编译,甚至直接以不直接支持面向对象的语言或机器码编写。但最近已经有了许多用纯编写的游戏,其效果与用语言编写的不相上下,例如合金战士英文名。这主要是因为新版的技术已经能像样调用硬件加速,也就是使用显卡来加速,无论是还是语言写的游戏都是使用显卡及来处理,从而使得可以专注于其他方面的工作。垃圾回收机制自动垃圾回收语言被用户诟病的原因之是大多数编译器不支持垃圾收集机制。通常使用编程的时候,程序员于程序中初始化对象时,会在主机存储器堆栈上分配块存储器与地址,当不需要此对象时,进行解构或者删除的时候再释放分配的存储器地址。如果对象是在堆栈上分配的,而程序员又忘记进行删除,那么就会造成存储器泄漏。长此以往,程序运行的时候可能会生成很多不清除的垃圾,浪费了不必要的存储器空间。因此如果同存储器地址被删除两次的话,程序会变得不稳定,甚至崩溃。因此有经验的程序员都会在删除之后将指针重置为,然后在删除之前先判断指针是否为。中也可以使用智能指针或者使用托管扩展编译器的方法来实现自动化存储器释放,智能指针可以在标准类库中找到,而托管扩展被微软的及以上版本所支持。智能指针的优点是不需引入缓慢的垃圾收集机制,而且可以不考虑线程安全的问题,但是缺点是如果不善使用智能指针的话,性能有可能不如垃圾收集机制,而且不断地分配和释放存储器可能造成存储器碎片,需要手动对堆进行压缩。除此之外,由于智能指针是个基于模板的功能,所以没有经验的程序员在需要使用多态特性进行自动清理时也可能束手无策。语言则不同,上述的情况被自动垃圾收集功能自动处理。对象的创建和放置都是在存储器堆栈上面进行的。当个对象没有任何参考的时候,的自动垃圾收集机制就发挥作用,自动删除这个对象所占用的空间,释放存储器以避免存储

下一篇
Java的历史(外文翻译)第1页
1 页 / 共 23
Java的历史(外文翻译)第2页
2 页 / 共 23
Java的历史(外文翻译)第3页
3 页 / 共 23
Java的历史(外文翻译)第4页
4 页 / 共 23
Java的历史(外文翻译)第5页
5 页 / 共 23
Java的历史(外文翻译)第6页
6 页 / 共 23
Java的历史(外文翻译)第7页
7 页 / 共 23
Java的历史(外文翻译)第8页
8 页 / 共 23
Java的历史(外文翻译)第9页
9 页 / 共 23
Java的历史(外文翻译)第10页
10 页 / 共 23
Java的历史(外文翻译)第11页
11 页 / 共 23
Java的历史(外文翻译)第12页
12 页 / 共 23
Java的历史(外文翻译)第13页
13 页 / 共 23
Java的历史(外文翻译)第14页
14 页 / 共 23
Java的历史(外文翻译)第15页
15 页 / 共 23
温馨提示

1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。

2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。

3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。

4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。

5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。

  • 文档助手,定制查找
    精品 全部 DOC PPT RAR
换一批