java 1.6新特性

一:桌面GUI的增强
  在JDK1.6中,AWT新增加了两个类:Desktop和SystemTray类。

  前者增强了Java GUI与本地系统应用程序的交互,例如可以打开默认浏览器浏览URL,打开系统默认邮件客户端向指定邮箱发邮件,使用用默认应用程序打开编辑文件(用记事本打开以.txt后缀的文件),用系统默认打印机来打印文档;

    后者可以用来在系统托盘区创建一个托盘程序。

二:JAXB 2来实现Java对象与XML的映射
  JAXB是Java Architecture for XML Binding的缩写,可以将一个Java对象转变成为XML格式,反之亦然。

  对象与关系数据库之间的映射称为ORM,而对象与XML之间的映射则称为OXM(Object XML Mapping)。JAXB原本是Java EE的一部分,在JDK1.6中,SUN将其放入了Java SE。

    JDK 1.6中提供的JAXB版本是2.0(JSR 222),比起1.0(JSR 31)来,JAXB 2可以使用Annotation注解特性来标识要作绑定的类和属性。

三:New XML API - StAX
  StAX(JSR 173)是JDK 1.6中新增的处理XML文档的API。StAX是Streaming API for XML的缩写,一种利用拉模式解析(pull-parsing)XML文档的API。

    StAX支持基于迭代器和指针两种模式来处理XML文档。迭代器模式:解析器产生一个解析事件然后处理该事件,之后又促使解析器产生下一个解析事件,如此循环直到文档结束符;

  SAX也是基于事件处理xml文档,使用推模式解析(push-parsing),解析器解析完整个xml文档后,产生解析事件,然后推给程序去处理这些事件。

四:使用Compiler API

  使用JDK1.6 的Compiler API(JSR 199)去动态编译Java源文件,Compiler API结合反射功能就可以实现动态产生Java代码并编译执行这些代码,具备了有点动态语言的特征。

  现在的JSP Web Server通过在运行期间通过Runtime.exec或ProcessBuilder来调用javac来编译代码,这种方式需要我们产生另一个进程去做编译工作,不够优雅且使得代码依赖于操作系统;Compiler API通过一套标准API提供了丰富的方式去做动态编译,而且是跨平台的。

五:内置Http Server API/ Derby

  JDK 1.6 提供了一个Http Server API,可以构建自己的嵌入式Http Server,它支持Http和Https协议,提供了HTTP1.1的部分实现。必须实现HttpHandler接口,HttpServer会调用HttpHandler实现回调方法来处理客户端请求。

    此外,JDK 1.6内置了apache Derby——一个轻量级的嵌入式数据库,作为Java DB。

六:插入式注解处理API(Pluggable Annotation Processing API)
  插入式注解处理API(JSR 269)提供一套标准API来处理Annotations(JSR 175)。

  JSR 269的注解处理器是在编译期间而不是运行期间处理注解,注解处理器相当于编译器的一个插件,因此称为插入式注解处理。如果注解处理器处理注解时(执行process()方法),产生了新的Java代码,编译器会再调用一次注解处理器,如果第二次处理还有新代码产生,就会接着调用一次,直到没有新代码产生为止。每执行一次process()方法被称为一个"round"。

七:Console控制台程序

  JDK1.6中提供了java.io.Console 类专用来访问基于字符的控制台设备。一个JVM是否有可用的Console依赖于底层平台和JVM如何被调用。如果JVM是在交互式命令行(例如Windows的cmd)中启动的,并且输入输出没有重定向到其他地方,那么就可以得到一个可用的Console实例。

八:动态语言支持

  支持动态语言ruby,groovy,javascript。

九:Common Annotations
  Common annotations原本是Java EE 55.0(JSR 244)规范的一部分,现在SUN部分放到了Java SE 6中。
  随着Annotation元数据功能(JSR 175)加入到Java SE 5.0里面,很多Java 技术(比如EJB,Web Services)都会用Annotation部分代替XML文件来配置运行参数(或者说是支持声明式编程,如EJB的声明式事务),如果这些技术为通用目的都单独定义了自己的Annotations,显然有点重复建设,所以,为其他相关的Java技术定义一套公共的Annotation是有价值的,可以避免重复建设的同时,也保证Java SE和Java EE 各种技术的一致性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值