版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 hunan university 毕业设计(论文)设计论文题目: 基于xml数据交换系统的研究 与实现湖南大学毕业设计(论文) 第 iv 页基于xml数据交换系统的研究与实现摘 要各种信息系统烦杂并存,各个系统之间不能互连,信息不能共享,形成一个个的信息孤岛,造成数据不一致,在如今的信息社会中普遍存在。解决这些问题的方法就是进行系统的集成,进行系统集成过程中的一个关键问题就是如何在这些系统之间进行数据的交换。xml标记语言具有跨平台性、自描述性、可交换性等特点,这使得它非常适合于作为异构平台之间数据交换的中介。本文建立了一个数据交换系统,利用xml文件作为一种交换介质来实现多个数据库之间的数
2、据交换。本系统结合hibernate的对象-关系映射技术,xmlbeans的xml模式-对象映射技术以及java reflector机制解决xml模式与关系模式之间的映射问题。通过hibernate把源数据库中的表关系映射到具体的java对象,通过操作java对象来处理关系数据库;通过xmlbeans处理目标xml schema的结构、元素等信息,建立目标xml模式到java对象的映射以及xml文件处理对象;再通过反射机制,分析hibernate映射对象与目标xml模式的java映射对象,把hibernate映射对象的数据信息转入目标xml模式的java映射对象中,这样就能使用xmlbeans
3、生成基于目标模式的xml文件;最后xml文件处理对象完成xml文件处理,得到目标数据库映射对象,再通过hibernate存入目标数据库。本系统以xml文件作为中间数据格式化,完成了在不同的关系型数据之间交换数据,达到数据共享的目的。关键词:可扩展标识语言、关系型数据库、数据交换、文档类型定义、模式research and implement data exchange system based on xml documentabstractthe coexisted various kinds of information systems have become some informatio
4、n islands, unable to share information。the key to solve these problems is to integrate the systems, of which the key is sue is how to exchange data between the systems. xml is one kind of markup language, with various characteristics such as trams-platform, opening, self-description and exchangeabil
5、ity. so it is a good solution to solve the above-mentioned problem by building a data exchange system based on xml. this system unifies the object-relations mapping technology of hibernate, the xml schema-object mapping technology of xmlbeans as well as the java reflector mechanism to solves the pro
6、blem between the xml schema and the relational scheme mapping . through hibernate, the table of source database mapped to the concrete java object, through operates the java object to process relational database; through xmlbeans processing goal xml information and so on schema structure, element, e
7、stablishes the goal xml schema to the java object mapping as well as the xml file processing object; through the reflex mechanism, analyzes the hibernate mapping object and goal xml again the schema java mapping object, changes over to goal xml the hibernate mapping objects data message the schema i
8、n the java mapping object, like this can use xmlbeans to produce based on the goal schema xml document; finally the xml file processing object completes the xml file processing, obtains the goal database mapping object, stores the goal database again through hibernate.this system takes the middle da
9、ta formatting by the xml document, completed has exchanged the data between the different relations data, achieved the goal of data sharing.key words:xml,relational database,data exchange,dtd.,xml schema目 录 摘 要iabstractii1绪论11.1系统研究背景11.2研究现状11.3本文研究内容21.4论文组织结构21.5本章小结32系统需求52.1关系型数据库52.2异构数据共享的方式5
10、2.3本系统的解决方案62.4本章小结63xml及其相关技术73.1xml语言概述73.1.1标记语言的概念73.1.2标记语言的分类73.1.3sgml83.1.4html93.1.5xml103.1.6sgml、html、xml之间的关系113.2xml应用123.3xml文件123.3.1规范的xml文件123.3.2xml三要素123.4xml schema143.4.1简介143.4.2一个xml文档及其schema的例子143.5本章小结174java及其相关技术194.1java简介194.1.1java历史194.1.2java特点194.2j2ee介绍224.3java数据库
11、连接(jdbc)234.3.1简介234.3.2编程接口234.3.3编程实例244.4hibernate与xmlbeans244.5本章小结255xml数据交换方案设计275.1系统开发平台和相关技术275.2系统设计275.3系统实现285.4数据库导出xml文档305.5xml文档导入数据库335.6模式转换335.7系统介绍345.8本章小结356 总结与展望37致谢38参考文献39湖南大学毕业设计(论文) 第 41 页1绪论 1.1系统研究背景异构数据库分布在网络的不同位置,其异构性体现在dbms(database management system)运行的系统环境和使用的数据模型的
12、不同,以及用户各自独立对数据进行建模而引起的数据结构和数据语义表达的差异。系统异构给数据库间跨网络的互操作带来困难,模型异构使得用户无法使用本地的数据库语言访问异构数据库中的数据,结构异构和语义异构则使应用系统难以理解异构数据库中的数据并对其进行分析和处理。因此,这些异构数据库就象一个个“信息孤岛”,彼此间的共享存在困难。数据交换是实现异构数据库共享的途径之一。解决异构数据库的共享主要有远程访问、数据库集成、数据交换等方式,其中数据交换是用源数据库的数据格式读出所需数据,再按目标数据库的格式写入,将数据在目标数据库中冗余存储,使双方的数据互为补充,达到异构数据库共享的目的。数据交换中数据转换质
13、量的好坏直接影响到交换后的数据能否有效地存入目标方数据库或被目标应用系统使用。因此,如何在数据转换过程中消除数据异构性是数据交换的一个难点问题。此外,数据交换过程不可避免地涉及数据的请求、发送与接收等操作,又面临着系统运行环境异构带来的系统间互操作问题,所以解决系统间的互操作是数据交换的第二个难点。最后,数据交换中数据传输的安全性也是很重要的课题。随着internet 和电子商务的发展,企业之间的联系日趋紧密,不同系统之间的信息交流日益增多, 异构数据交换技术的应用也日益广泛。1.2研究现状数据库的异构性导致数据共享存在困难的问题,已经引起了业界的关注,数据库厂商和软件厂商都在不断探索和研究解
14、决的方案。在异构数据库的数据交换方面,目前主要有以下几种技术途径:数据库交换工具,数据库交换中间件,中间数据法。数据库交换工具与dbms结合紧密,运行效率高,但通用性不足,目前还没有一种工具能够适用于所有异构数据库的交换。并且使用这些工具通常需要人工对交换过程进行初始化设置,设置工作较为繁琐。功能完善的数据库交换中间件可以屏蔽数据的分布地点、dbms、sql方言/扩展、特殊的本地api等差异并对数据进行转换以用户能够接受的格式提供数据。但是中间件技术本身比较复杂,还需配套使用应用服务器这类昂贵的软件,因此其应用成本较高。中间数据法为数据交换提供公共的数据格式,交换双方统一使用这一数据格式的文档
15、交换数据。在这种方法中,交换双方各自负责实现中间数据文档与本地数据库之间的转换,无需考虑对方数据库的实现细节,可扩展性强,同时,使用文档进行数据交换的应用成本较低,所以中间数据法具有较高的通用性,得到了广泛的使用。目前,中间数据法的数据交换主要是以xml作为中间数据格式。xml是一种数据格式描述的元语言标准,具有系统独立性、可扩展性、自描述性、遵循严格的语法规范以及支持多语种等特点,自产生之后就迅速被作为中间数据格式标准应用到数据交换领域。作为数据交换的中介,xml不仅能够提供对数据的存储,还包含对数据结构的描述回。xml的系统独立性使得xml数据能够在不同的系统中使用各种编程语言解析和处理,
16、屏蔽了异构数据库间系统环境的差异。因此,基于xml的数据交换方案已经被广泛用于解决网络环境下异构数据库的共享。1.3本文研究内容 基于xml的数据交换方案一般是通过定义一个xml模式,在交换过程中传输符合xml模式的数据文档实现数据交换,交换双方各自负责数据在本地关系模式与xml模式间的转换。在进行关系数据与xml数据转换时,还需要对数据进行操作和编辑,消除数据异构性,然后才能将数据转入本地数据库或xml文档。本文主要研究如何实现各个关系型数据库之间的信息交换。xml是一种新型的数据交换标准,通过xml和jdbc,hibernate,j2ee等技术的应用可以实现不同数据库间信息的交换。为完成数
17、据库到xml和xml到数据库之间数据的交换与传递,系统解决了xml文档结构和数据库结构之间的映射,本文主要研究xml schema与关系模式之间的映射,这一步采用的是xmlbeans与java反射机制。还研究了基于xml的数据交换系统的设计、运行机制等。1.4论文组织结构全文共分为六章,其中:第一章是绪论部分,首先简单概括了系统的开发背景,然后论述了目前国内外对数据交换的研究现状,最后根据系统背景和存在的问题提出了本系统的建设原则,并阐述了此xml数据交换的重大意义以及论文的组织结构。第二章论述了系统的基本需求。概述了系统的功能,也就是完成各种不同数据库之间的数据转换。第三章论述了与xml相关
18、的各种技术。首先扼要概述了xml这种半结构化语言的基本特征,然后说明了xml的相关应用,xml规范,最后阐述了实现xml数据交换的重要技术xml schema,它严格定义了xml文件的模式。第四章论述了与java相关的各种技术。首先描述了java语言的发展及其java语言本身的特征与优点。然后简单介绍了j2ee技术组成,最后介绍了实现xml数据交换的又一个关键问题:jdbc,java数据库操作与连接。第五章详细介绍了xml数据交换的系统设计。首先说明了如何完成xml文件导入导出数据库,接着叙述了如何在网络环境下完成异构数据库系统之间的数据交换。第六章对研究工作进行归纳和总结。1.5本章小结本章
19、首先简单概括了系统的开发背景,然后论述了目前国内外对数据交换的研究现状,最后根据系统背景和存在的问题提出了本系统的建设原则,并阐述了此xml数据交换的重大意义以及论文的组织结构。2xml及其相关技术2.1xml语言概述2.1.1标记语言的概念标记语言,用一系列约定好的标记来对电子文档进行标记,已实现对电子文档的语义、结构、及格式的定义。标记语言是一种将文本以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。与文本相关的其他信息(包括例如文本的结构和表示信息等)与原来的文本结合在一起,但是使用标记进行标识。当今广泛使用的标记语言是超文本标记语言(html)和可扩展标记
20、语言(xml)。标记语言广泛应用于网页和网络应用程序。标记最早用于出版业,是作者、编辑以及出版商之间用于描述出版作品的排版格式所使用的。2.1.2标记语言的分类一、特定标记语言顾名思义,“特定标记语言”(specific markup language)是为特殊用途而产生的标记语言。通常都是为了“特别的应用软件”,或是为了“特别的应用用途”。总体而言就是为了这两方向而产生特定用途的标记语二、通用标记语言一般来说,通用标记语言(generalized markup language),通常只描述文件里的内容及其结构,而语言本身并没有告诉我们如何“使用”它,比方说显示、扫印等工作。要如何去应用,就
21、要看你所使用的应用程序怎么去处理了。也正因如此,所以通用标记语言就具有很强的“使携性”(portable),它不受限于特别的描述方法或是特别的应用方向。比较有名的通用标记语言有gml(generalized markup language),gml是相当流行的sgml的前辈。2.1.3sgmlsgml(standard generalized markup language,标准通用标记语言),是一种定义电子文档结构和描述其内容的国际标准语言,是所有电子文档标记语言的起源,早在web发明之前sgml就已存在.sgml是1986年出版发布的一个信息管理方面的国际标准(iso 8879)。该标准定
22、义独立于平台和应用的文本文档的格式、索引和链接信息,为用户提供一种类似于语法的机制,用来定义文档的结构和指示文档结构的标签。其中markup的含义是指插入到文档中的标记。标记分为两种:一种称为procedard markup,用来描述文档显示的样式;另一种称为descriptive markup,用来描述文档中的文字的用途。制定sgml的基本思想是把文档的内容与样式分开。sgml规定了在文档中嵌入描述标记的标准格式,指定了描述文档结构的标准方法,目前在web上使用的html格式便是使用固定标签集的一种 sgml文档。用于sgml可以支持无数的文档结构类型,并且可以创建与特定的软硬件无关的文档,
23、因此很容易与使用不同计算机系统的用户交换文档。使用sgml对多媒体的创作将带来许多好处。首先,由于其规范性,它可以使创作人员更集中于内容的创作,可提高作品的重复使用性能、可移植性能以及共享性能。其次,由于sgml的独立性,使得它在许多场合都有用武之地。同xml相比,定义的功能很强大,缺点是它不适用于web数据描述,而且sgml软件价格非常昂贵。iso/ansi/ecma的一个标准,一种用来注释文本文档,提供文档片断的类型信息的规范。 sgml它从80年代初开始使用。正如xml一样,sgml也可用于创建成千上万的置标语言,它为语法标志提供了异常强大的工具,同时具有极好的扩展性,因此在分类和索引数
24、据中非常有用。目前,sgml多用于科技文献和政府办公文件中。但是,sgml非常之复杂,其复杂程度对于网络上的日常应用简直不可思议。不仅如此,sgml非常昂贵。还有,最关键的一点,几个主要的浏览器厂商都明确拒绝支持sgml,这无疑是sgml在网上传播遇到的最大障碍。2.1.4htmlhtml即超文本标记语言(hyper text markup language的缩写)。它是由w3c制定出来的,最早的版本是在1993年推出的html1.0,而到目前我们所使用的是html 4. 0版。它最大的魁力在于利用超链接的方式,将包含着图、文、多媒体的网页呈现在浏览器上,只要点一下超链接,就可以链接到不同的网
25、页,而每个网页又可以相连,将整个世界的网络似乎串了起来。html会如此地流行,最主要的原因在于刚好在网络刚要成长的时候,而html又刚好可以满足web的需求,因为顺应了这股力量,html一下就变成标记语言的主流。要知道,互联网上的网站在不停地以好几倍的速度增长,而其中比例最大的一宗就是web网站。html的优点:一、简易性,html版本升级采用超集方式,从而更加灵活方便。二、可扩展性,html语言的广泛应用带来了加强功能,增加标识符等要求,html采取子类元素的方式,为系统扩展带来保证。三、平台无关性。虽然pc机大行其道,但使用mac等其他机器的大有人在,html可以使用在广泛的平台上,这也是
26、www盛行的另一个原因。html的缺陷:一、缺少延伸的空间这是html碰到的最大问题。sgml具有可扩展性,而html本身就是一种规定好了的语言。如同前面所言,它的语法简单,读者很快就可以学会它的标记,但可扩展性方面差一些.。二、只着重于数据的显示前面我们在介绍html的起源时提到过,html是w3c为了在web上发展而制定的,所以,它的定位放在为了展示、表达某些信息上。因此,在html的语法下,计算机无法去分辨你的数据是什么。三、缺乏一致的规格虽然html并没有平台上的问题,可是,由于html在制定的时候并不像sgml那么严谨,它注重在“表达”数据的能力上,所以,不同的浏览器厂商就有时会做出
27、不同的html标记,那么当你使用a浏览器来观看由b浏览器厂商做出的html标记所写出的网页时,有些原本由b浏览器可以正确观看的网页效果,在a浏览器上却看不到了。2.1.5xmlxml为extensible markup language的简称,即可扩展标记语言。xml的出现就是为了要应用于各个不同的层面,可根据应用领域的不同,而以不同的方式来描述文件。简单 地 说 ,对xml是以一种简单、标准、并可扩充的方式,将各种信息如文本、表格,甚至图形等以原始数据的方式储存。但在储存的过程中,加入一些可供识别的标记,而凭借这些可供识别的标记,在网络上的服务器可将信息内容做进一步的处理,从而得到所需的信息
28、。前面 曾 提及的sgml,由于规范实在过于严谨以及本身具有高度的复杂性,因此根据sgml所衍生制定出的html便大行其道,在网络上扮演着主流的角色,但却也失去了数据内容的灵活性(flexibility)与可重用性(reusability) ;也正同为如此,xml才诞生。xml并非是原创的语言,它与html一样都是根据sgml的标准所衍生制定出来的,融合了sgml的数据兼容性与html的简单标记法,使得它能够提供一套简单易懂又有效率的程序语法。xml的优点:一、可扩展xml 虽 然和html一样都是标记语言,但它却不像html只是特定应用在网页上,由于可以自由地创造新的标记来配合应用,使得xm
29、l的应用层面又有无限的延伸性,可以说是一种meta language(元语言)。所以利用xml所具有的延伸性,不只在网络上有更多发挥空间,对其他诸如文件数据库或多媒体数据库等复杂的数据系统也提供了很好的解决方案。二、简单易懂xml的程序代码部是以文本来表示,不是二进制码(binary code),所以利用一般的编辑器就可以编辑修改,而且表达的方式也很直观。三、平台无关性在目前的信息社会中,存在着各式各样的信息产品,诸如pc,mac数据库服务器以及掌上型计算机等,各个产品间的系统更是大不相同,所以在不同性质、不同平台间的信息传递将会随着网络的不断普及而更加受到重视。在xml尚未出现时,不同的系统
30、间的信息要互相传递可以说是一件费时又费工的苦差事,一般来说都需要特别为系统与系统之间编写软件来使彼此的信息能够正确地传递,且若是有一天系统需要更新或是改动部分软件,那么可能会造成系统间不兼容的问题,可以说问题很多。当xml出现之后,这个问题立刻迎刃而解了,它为不同系统之间提供了一个沟通的平台,扮演着一个信息传递的媒介。由于xml本身简单易读,能将不同类型的文件数据,诸如文本、图片以及特殊定义的对象等标记为xml格式,所以只要在要互相传递信息的系统上都挂有xml的解析器,就可以解读经标记过的数据,得到正确的信息。四、国际化xml支持多语种文件与unicode,在设计xml的一开始,设计者便考虑到
31、,信息的流通不应该只受限于一个国家或是一块区域,且随着internet在全世界的普及,将一份文件能够以多种不同语言来呈现,是xml必须拥有的能力,所以便将xml建立在unicode之上。xml与html的区别主要表现在以下几个方面:1)xml是被设计用来描述数据的;而html是被设计用来显示数据的。2)xml是关于数据的语言,是关于如何描述信息的;而html是关于如何显示信息的。3)xml是可扩展的,允许用户自定义自己的标记和自己的文档结构;在html中所有的标记和文档结构都是预先定义的,用户只有权利使用标准的html标记。4)xml是 html的一种补充,xml不是html的一种替代品。可以
32、使用xml来描述网站所需数据和网站的结构,而使用html来格式化和显示这些数据。2.1.6sgml、html、xml之间的关系sgml是一个语言模板,它可以描述其他具有具体语义的语言。html是sgml的一个实例,它的dtd作为标准被固定下来,因此,html不能作为定义其他标记语言的元语言。它的语言遵照sgml规范,并且定义其中每个标记的具体含义。xml是sgml的一个精简子集,它也是一个语言模板。严格地讲,xml还是sgml。与html不同的是,xml有dtd,因而也可以作为元语言来定义其他文件系统(标记语言)。2.2xml应用xml是一种网络标准能够简化互连网和企业网上的数据交换,目前它已
33、经取得了很大的进展,伴随而来的是它的应用范围也越来越大。一般来讲,xml的应用范围可分为如下几个方面:一、要求web客户机在两个或多个不同的数据库之间传递信息的应用。二、希望将web服务器的大量处理负荷转移给web客户机的应用。三、要求web客户机把同一数据以不同的表现方式提供给不同用户的应用。四、适应特定用户需求的智能web工具应用。xml在各个领域中得到了一些应用。典型的应用包括:lcml,全称chemical markup language,即化学标记语言。edi,全称electronic data interchange,即电子数据交换。mathml,是一种用于数学方程的xml应用。m
34、usicml,是music markup language的缩写,意思是“音乐标记语言“,等等。2.3xml文件2.3.1规范的xml文件一个xml文档如果符合一些基本的规范,那它就是结构规范的。xml格式有一套比html简单的解析规则,允许xml解析器不需要外部描述或了解数据含义就可以解析xml数据。起始标签和结束标签必须匹配。xml元素可以包含正文和其他元素,在它的schema中用严格的规范给出了文档的类型。但是,元素必须严格嵌套:每个起始标签必须有对应的结束标签。元素不能交迭。2.3.2xml三要素虽然xml有许多部分,但是只需要了解其中的三个就可以了解它是怎样工作的。即xml的三要素是
35、文档类型定义dtd或者xml schema,也就是xml的布局语言;可扩展的样式语言xsl,也就是dil的样式表语言;可扩展链按语言xll。一、文档类型定义介绍:dtd规定文档的逻辑结构。它可以定义文档的语法,而文档的语法反过来能够让xml语法分析程序确认某张页面标记使用的合法性。dtd定义页面的元素,元素的属性以及元素和属性之间的关系。dtd不是强制性的。对于简单应用程序来说,开发商不需要建立自己的dtd。可以使用预先定义的公共dtd,或者根本就不使用。即使某个文档己经有了dtd,只要文档是组织良好的,语法分析程序也可以不对照dtd来检验文档的合法性。服务器可能已经执行了检查,所以检验的时间
36、和带宽将得以节省。schema是伴随着xmll.0规范的制订而推出的。xml schema是dtd之后第二代用来描述xml文件的标准。是用来对xml进行文档类型定义的语言,用来规定xml文档的数据类型及组织方式,同时还是丰富的元数据资源。xml schema拥有许多类似dtd的准则,但又要比dtd更为强大一些。二、可扩展的样式语言介绍:接下来,我们介绍一下可扩展的样式语言是用于规定xml文档样式的语言。xsl能使web浏览器改变文档的表示法,例如数据的显示顺序改变,就不需要再与服务器进行交互通信。通过变换样式表,同一个文档可以显示得更大,或者经过叠折只显示外面的一层,或者变为打印格式。可以设想
37、一个适合用户学习特点的技术手册,它为初学者和更高一级的用户提供不同的样式,而且所有的样式都是根据同样的文本产生的。xsl凭借其可扩展性能够控制无穷无尽的标记,而控制每个标记的方式也是无穷尽的。这就给web提供了高级的布局特性。例如旋转的文本、多列和独立区域。它支持国际书写格式,可以在一页上混合使用从左至右、从右至左和从上至下的书写格式.正如xml介于html和sgml之间一样,xsl标准介于css和sgml的文档样式语义和规范语言(dsssl)之间。作为一种技术预展,微软最近发布了两种xsl处理器:一个是可以从xml文档和xsl样式层产生html输出的命令行应用程序,另一个是一种activex
38、控件,用于在浏览器中显示xml。微软的这种xsl处理器适合在windows95和windowsnt环境下通过internet explorer4.0浏览器使用。三、可扩展链接语言介绍最后,我们再来谈一谈可扩展链接语言(xll)xll将支持目前web上已有的简单链接,并且将进一步扩展链接,包括结束死链接的间接链接以及可以从服务器中仅查询某个元素的相关部分的连接符“”。2.4xml schema2.4.1简介xml schema与dtd一样,也是对一类xml文档进行约束、确定其结构,元素、属性、及数据类型,及xml文档中所使用的元素,实体,元素的属性,元素与实体之间的关系的约束。xml schem
39、a首先由微软提出,已经被w3c接受成为一个标准。与dtd不同的是,xml schema 文件使用xml语法,它的设计目的很许多跟dtd相似,但在功能,扩展性方面超越了dtd。2.4.2一个xml文档及其schema的例子下面给出一个针对mysql数据库中student表的对应xml schema定义与xml文件的例子。如下在数据库中定义一张表:create table student( stuid numeric(10,0) not null, password varchar(20) not null, stuname varchar(100) not null, sex varchar(2
40、) not null, grade varchar(50) not null, major varchar(50) not null, primary key (stuid);根据表字段类型与约束条件得到对象的xml模式定义:下面是一个符合xml模式定义的xml文件:20051610311hnujxm张三/stuname男05级3班software200516103152200355李明女09级2班应用日语2.5本章小结本章论述了与xml相关的各种技术。首先扼要概述了xml这种半结构化语言的基本特征,然后说明了xml的相关应用,xml规范,最后阐述了实现xml数据交换的重要技术xml sche
41、ma,它严格定义了xml文件的模式。3java及其相关技术3.1java简介3.1.1java历史java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由sun公司的于1990年代初开发。它最初被命名为oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,sun放弃了该项计划。就在oak几近失败之时,随着互联网的发展,sun看到了oak在计算机网络上的广阔应用前景,于是改造了oak,在1995年5月以“java”的名称正式发布了。java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络
42、编程语言。java编程语言的风格十分接近c+语言。继承了 c+ 语言面向对象技术的核心,java舍弃了c+语言中容易引起错误的指针、运算符重载、多重继承等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间。在 java se 1.5 版本中java又引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,这同时也在一定程度上降低了 java 程序的运行效率。但在j2se1.4.2发
43、布后,java的执行速度有了大幅提升。与传统程序不同,sun 公司在推出 java 之际就将其作为一种开放的技术。全球数以万计的 java 开发公司被要求所设计的 java 软件必须相互兼容。“java 语言靠群体的力量而非公司的力量”是 sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。3.1.2java特点java是一种简单、动态、面向对象、分布式、解释执行、健壮、安全、结构中立、可移植、高效能、具有多线程能力的新一代语言。java是一种简单的语言java删除了许多极少被使用、不容易理解和容易令人混淆的c+功能。剔除的功能主要包括运算
44、符重载、多重继承以及广泛的自动强迫同型。与c+相比,java语言也提供重载函数,不过它重载的对象是函数而非变量或是运算符。java还增加了自动内存收集功能,从而简化了java程序的工作,不过同时也让系统变得稍微复杂了一些。java的目标之一是要协助开发能独立地在小型机器上顺利执行的软件。java的基本解释器和对象类支持约占40kb空间,而若增加基本的标准程序库和线程支持则需增加约175kb。体积小,对于在嵌入式系统中的使用是很重要的,正因为这样,java才能够通过网络轻易下载。 java是面向对象的语言面向对象是在业界中一度流行的术语之一。不过,它确定是一项很强的设计功能,它可以促成明确的接口
45、定义,并允许开发人员建立可重复使用的软件部件。java是分布式语言 java拥有广泛的能轻易地处理tcp/ip协议的运行库,例如http与ftp类库等等。这使得在java中比在c或c+中更容易建立网络连接。java应用程序可以借助url通过网络开启和存取对象,就如同存取一个本地文件系统一样简单。java是健壮的java的目标是要协助开发人员建立各方面可靠的程序,java强调:开发人员可在设计初期即检查可能存在的问题,其后则进行动态的检查,并排除容易出现的错误。c+语言的优点是允许在编译时进行深入的检查,以便提前发现错误。java与c/c+之间最大的不同点之一在于java拥有一种模型,能排除内存
46、被覆盖和毁损数据的可能性。java不采用指针计算法,而是提供真正的数组阵列。这允许程序执行下标检查,但它不允许将一个整数转成指针的情形发生。 java的安全性 java设计的目的是要能够使用于网络/分布式运算环境。为此,java非常强调安全性,以确保建立无病毒且不会被侵入的系统。java的验证技术是以公钥加密法为基础。键壮性与安全性之间存在一种很强的相互作用关系。例如,指针语意的改变,让应用程序不可能伪造对象结构存取权,或存取它们在对象中没有存取权的? 数据。这等于关上大门,杜绝大多数病毒的侵入。 java的中立性结构java的设计目标是要支持网络应用程序。一般而言,网络是由许多不同的平台系统
47、构成,包括各种cpu与操作系统结构。为了让java应用程序能够在网络上任何地方执行,其编译器将会生成一种具备结构中立性的目标文件格式。编译后的程序码可以在提供java运行系统的多种不同处理器上面执行。java的这种中立性结构不仅对网络应用很有帮助,而且也很适合单一的系统软件流通。java编译器是通过生成与某一特定电脑结构无关的字节代码指令,以达到上述功能的。这些字节代码指令能很容易在任何机器上解释执行。结构中立性是确保程序可移植的最重要部份,不过除此之外还需很多必须配合的条件和c与c+不同的是,java规范中并无任何与机器结构相依存的陈述存在。它指定了基本数据类型的大小,及其算术运算元的执行行
48、为。java是解释执行的 java解决器可以直接在任何已移植该解释器的机器上解释、执行java字节代码。再者,由于其链接过程比较倾向于逐步增量与轻量过程,因此程序开发更快、更精密。 高效能的java程序 虽然解决过的字节代码性能已相当不错,不过有些情形下还是要求程序达到更高执行效能。字节代码可以动态地解释为执行应用程序特定cpu的机器码。这对于习惯使用一般编译器与动态载人器的程序设计者而言,有点类似将最终的机器码生成器放到动态载入器之内。字节代码格式在设计上即已考虑了机器码的产生,因此实际的机器码生成程序相当简单。其生成的机器码是有效的,编译器自动分配寄存器,而在生成字节代码期间也会进行一些优
49、化。我们以解决码在一台sun microsystem sparc station10上执行时,达到每秒三十万个函数调用速率。字节代码转换至机器码的速度性能,几乎和直接生成机器目标代码的c或c+没有什么两样。java对多线程的支持java拥有一组复杂的同步化基本单元,它们是以广泛使用的c.a.r.hoare监视器与条件变量图为基础的。将这些概念融合到语言中之后,它们就变得更容易使用且更为健壮。这种融合方式大部分来自xerox的cedar/mesa系统。多线程所带来的其它好处包括更好的交互式回应能力与实时运行能力。然而这会受到底层平台的限制:独立执行的java运行环境有着很好的实时执行能力,而若在其他系统例如unix、windows、macintosh或windowsnt等平台上执行时,则会由于底层平台的原因而使实时响应能力受到影响。java的动态特性就各方面而言,java是一种比c或c+更具动态特性的语言。它在设计上强调为不断发展的运算环境提供支持。 java能了解由objective c引用过来的接口概念。简单地说,接口就是规范一组与对象相对应的成员函数,但对象如何实现这些成员函数则亟待解决。一个类实现一个接口是要提供这个接口所包含的所有成员函数的实现,与此相反,派生子类则从父类继承了一组成员函数以及它们的实现。一个ja
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年天等县社区工作者招聘考试模拟试题及答案解析
- 2026年前郭尔罗斯蒙古族自治县医疗事业单位人员招聘考试参考题库及答案解析
- 2026年富源县医疗事业单位人员招聘笔试备考试题及答案解析
- 2026年团风县医疗事业单位人员招聘笔试备考题库及答案解析
- 2026年边坝县医疗事业单位人员招聘笔试参考题库及答案解析
- 2026年陇西县医疗事业单位人员招聘笔试备考题库及答案解析
- 2026年察雅县带编教师招聘笔试备考题库及答案解析
- 2026年米易县医疗事业单位人员招聘笔试备考题库及答案解析
- 2026年安新县医疗事业单位人员招聘笔试模拟试题及答案解析
- 2026年岢岚县医疗事业单位人员招聘考试备考题库及答案解析
- DL∕T 1252-2013 输电杆塔命名规则
- 管理百年智慧树知到期末考试答案章节答案2024年南昌大学
- DL-T5054-2016火力发电厂汽水管道设计规范
- DL-T1069-2016架空输电线路导地线补修导则
- 腔镜下甲状腺切除手术配合
- 注册安全工程师考试真题及答案
- GB/T 15587-2023能源管理体系分阶段实施指南
- 中国古代兵器
- 软件开发(IT行业)程序文件清单
- GB/T 21475-2008造船指示灯颜色
- GB/T 1981.2-2009电气绝缘用漆第2部分:试验方法
评论
0/150
提交评论