java6新特性简介.ppt
《java6新特性简介.ppt》由会员分享,可在线阅读,更多相关《java6新特性简介.ppt(36页珍藏版)》请在三一办公上搜索。
1、JAVA6新特性简介,1、JAXB2、STAX3、Compiler API4、轻量级Http Server5、用Console开发控制台程序6、Common Annotations7、Web服务元数据(Web Services metadata)8、JAX-WS9、脚本语言支持(Scripting),JAXB(Java Architecture for XML Binding)是一种特殊的序列化/反序列化工具。它可以使XML数据以Java Objects的形式直接应用于Java程序之中,使Java Objects与XML数据之间的转换成为可能。在JAXB中将Java Objects到XML数据
2、的转换称为marshal;XML数据到Java Objects的转换称为unmarshal。,JAXB,xjc命令行程序xjc用于编译DTD或Schema生成与XML数据结构对应的JavaBeans类。操作方法如下:xjc-xmlschema|-dtd d 保存java文件的目录 p java文件所在的包,JAXB,常用注解及其作用,JAXB,XmlAccessorType控制字段或属性的序列化。XmlAccessType.FIELD表示JAXB将自动绑定Java类中的每个非静态的(static)、非瞬态的(由XmlTransient标注)字段到XML。其他值还有XmlAccessType.P
3、ROPERTY和XmlAccessType.NONE。XmlJavaTypeAdapter使用定制的适配器(即扩展抽象类XmlAdapter并覆盖marshal()和unmarshal()方法),以序列化Java类为XML。XmlElementWrapper对于数组或集合(即包含多个元素的成员变量),生成一个包装该数组或集合的XML元素(称为包装器)。XmlRootElement将Java类或枚举类型映射到XML元素。XmlElement将Java类的一个属性映射到与属性同名的一个XML元素。XmlAttribute将Java类的一个属性映射到与属性同名的一个XML属性。,序列化(Marsha
4、lling)与反序列化(Unmarshalling),JAXB,/创建JAXB环境JAXBContext context=JAXBContext.newInstance(Student.class);/创建编组Marshaller marshaller=context.createMarshaller();/设置编组属性,使得输出的XML文档进行格式化(提供缩进)marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,Boolean.TRUE);/编组到文件marshaller.marshal(student,file);/从文件解组到一
5、个新对象中Student newStudent=(Student)context.createUnmarshaller().unmarshal(file);,STAX(JSR 173)是JDK6.0中除了DOM 和SAX之外的又一种处理XML文档的API。,STAX,STAX的来历在JAXP1.3(JSR 206)有两种处理XML文档的方法:DOM(Document Object Model)和SAX(Simple API for XML).由于JDK6.0中的JAXB2(JSR 222)和JAX-WS 2.0(JSR 224)都会用到STAX所以Sun决定把STAX加入到JAXP家族当中来,
6、并将JAXP的版本升级到1.4(JAXP1.4是JAXP1.3 的维护版本).JDK6 里面JAXP的版本就是1.4.,STAX简介,STAX,STAX是The Streaming API for XML的缩写,一种利用拉模式解析(pull-parsing)XML文档的API.STAX通过提供一种基于事件迭代器(Iterator)的API让程序员去控制xml文档解析过程,程序遍历这个事件迭代器去处理每一个解析事件,解析事件可以看做是程序拉出来的,也就是程序促使解析器产生一个解析事件然后处理该事件,之后又促使解析器产生下一个解析事件,如此循环直到碰到文档结束符;SAX 也是基于事件处理xml 文
7、档,但却是用推模式解析,解析器解析完整个xml 文档后,才产生解析事件,然后推给程序去处理这些事件;DOM 采用的方式是将整个xml文档映射到一颗内存树,这样就可以很容易地得到父节点和子结点以及兄弟节点的数据,但如果文档很大,将会严重影响性能。,几种XML文档解析方式比较:,STAX,DOM(Document Object Model)文档对象模型分析方式。以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取和操作文档的任意部分。是W3C的官方标准。优点:1、允许应用程序对数据和结构做出更改。2、访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据。缺点
8、:1、通常需要加载整个XML文档来构造层次结构,消耗资源大。,几种XML文档解析方式比较:,STAX,SAX(Simple API for XML)流模型中的推模型分析方式。通过事件驱动,每发现一个节点就引发一个事件,通过回调方法完成解析工作,解析XML文档的逻辑需要应用程序完成。优点:1、不需要等待所有数据都被处理,分析就能立即开始。2、只在读取数据时检查数据,不需要保存在内存中。3、可以在某个条件得到满足时停止解析,不必解析整个文档。4、效率和性能较高,能解析大于系统内存的文档。缺点:1、需要应用程序自己负责TAG的处理逻辑(例如维护父/子关系等),使用麻烦。2、单向导航,很难同时访问同一
9、文档的不同部分数据,不支持XPath。,几种XML文档解析方式比较:,STAX,JDOM(Java-based Document Object Model)Java特定的文档对象模型。自身不包含解析器,使用SAX。优点:1、使用具体类而不是接口,简化了DOM的API。2、大量使用了Java集合类,方便了Java开发人员。缺点:1、没有较好的灵活性。2、性能较差。,几种XML文档解析方式比较:,STAX,DOM4J(Document Object Model for Java)简单易用,采用Java集合框架,并完全支持DOM、SAX和JAXP。优点:1、大量使用了Java集合类,方便Java开发
10、人员,同时提供一些提高性能的替代方法。2、支持XPath。3、有很好的性能。缺点:1、大量使用了接口,API较为复杂。,几种XML文档解析方式比较:,STAX,StAX(Streaming API for XML)流模型中的拉模型分析方式。提供基于指针和基于迭代器两种方式的支持。优点:1、接口简单,使用方便。2、采用流模型分析方式,有较好的性能。缺点:1、单向导航,不支持XPath,很难同时访问同一文档的不同部分。,由上面的测试结果可以看出,性能表现最好的是SAX,其次是StAX Stream和StAX Event,DOM和DOM4J也有着不错的表现。性能最差的是JDOM。所以,如果你的应用程
11、序对性能的要求很高,SAX当然是首选。如果你需要访问和控制任意数据的功能,DOM是个很好的选择,而对Java开发人员来讲,DOM4J是更好的选择。如果只需要做XML文档解析的话,综合性能、易用性、面向对象特征等各方面来衡量,StAX Event无疑是最好的选择。,STAX,JDK6 的Compiler API(JSR 199)可以动态编译Java源文件,Compiler API结合反射功能就可以实现动态的产生Java代码并编译执行这些代码,有点动态语言的特征。这个特性对于某些需要用到动态编译的应用程序相当有用,比如JSP Web Server,当我们手动修改JSP后,是不希望需要重启Web S
12、erver 才可以看到效果的,这时候我们就可以用Compiler API来实现动态编译JSP文件,当然,现在的JSP Web Server也是支持JSP热部署的,现在的JSP Web Server通过在运行期间通过Runtime.exec 或ProcessBuilder 来调用javac 来编译代码,这种方式需要我们产生另一个进程去做编译工作,不够优雅而且容易使代码依赖与特定的操作系统;Compiler API通过一套易用的标准的API提供了更加丰富的方式去做动态编译,而且是跨平台的。,Compiler API,JDK6 提供了一个简单的Http Server API,据此我们可以构建自己的嵌
13、入式Http Server,它支持Http 和Https 协议,提供了HTTP1.1的部分实现,没有被实现的那部分可以通过扩展已有的Http Server API来实现,程序员必须自己实现HttpHandler接口,HttpServer 会调用HttpHandler 实现类的回调方法来处理客户端请求,在这里,我们把一个Http 请求和它的响应称为一个交换,包装成HttpExchange类,HttpServer负责将HttpExchange传给HttpHandler实现类的回调方法.,轻量级Http Server,JDK6 中提供了java.io.Console 类专用来访问基于字符的控制台设备
14、.你的程序如果要与Windows 下的cmd 或者Linux 下的Terminal交互,就可以用Console类代劳.但我们不总是能得到可用的Console,一个JVM是否有可用的Console依赖于底层平台和JVM如何被调用.如果JVM是在交互式命令行(比如Windows的cmd)中启动的,并且输入输出没有重定向到另外的地方,那么就可以得到一个可用的Console实例。,用Console开发控制台程序,Common annotations原本是Java EE 5.0(JSR 244)规范的一部分,现在SUN把它的一部分放到了Java SE 6.0中.随着Annotation元数据功能(JSR
15、 175)加入到Java SE 5.0里面,很多Java 技术(比如EJB,Web Services)都会用Annotation部分代替XML文件来配置运行参数(或者说是支持声明式编程,如EJB的声明式事务),如果这些技术为通用目的都单独定义了自己的Annotations,显然有点重复建设,所以,为其他相关的Java技术定义一套公共的Annotation是有价值的,可以避免重复建设的同时,也保证Java SE和Java EE 各种技术的一致性.,Common Annotations,Common Annotations,Web服务元数据(Web Services metadata),自从JDK
16、5添加了元数据功能(Annotation)之后,SUN几乎重构了整个J2EE体 系,由于变化很大,干脆将名字也重构为Java EE,Java EE(当前版本为5.0)将元数据纳入很多规范当中,这其中就包括Web Services的相关规范,比以前的JAX-RPC编程模型简单(当然,Axis的编程模型也很简单).这里要谈的Web服务元数据(JSR 181)只是Java Web 服务规范中的一个,它跟Common Annotations,JAXB2,StAX,SAAJ和JAX-WS等共同构成Java EE 5的Web Services技术堆栈.,下面介绍JSR-181里面各个元数据的相关参数及用途
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java6 特性 简介
链接地址:https://www.31ppt.com/p-2214277.html