您的位置:首页 > 编程语言 > Java开发

JDK1.5到JDK1.8增加的新特性

2015-12-11 00:13 531 查看
一、JDK1.5

1.枚举(Enum类竟然1.5中才出现····)

2.自动拆箱与装箱

在jdk1.5之前,如果你程序中出现这样的代码
Integer i = 100;
编译器会报错,jdk1.5以后,增加了自动装箱与拆箱的特性。我的理解,在这句代码中,“箱”就是Integer。具体解释参考:

【1】一些jdk1.5的新特性

【2】jdk1.5新特性4之自动装箱和自动拆箱与享元模式

【3】Java自动装箱与拆箱及其陷阱

3.静态导入 用法如下:

package com.echo.excercise;
import static java.lang.Math.abs;
public class AutoWrapper {
public static void main(String[] args) {
Integer i = 100;
abs(i);
}

}


当某个程序中对某个类某个的静态方法调用频繁,可以将该方法静态导入

4.可变参数 用法如下:

package com.echo.excercise;

public class ChangeableParms {
public static void main(String[] args) {
parms(2,4,5);
}

public static void parms(int ...parms){
for(int i:parms){
System.out.println(i);
}
}

}


注意:

【1】可变参数只能出现在参数列表的最后

【2】… 位于变量类型和变量名之间。前后有空格都可以。

【3】调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。也就是说JVM会吧int…parms以

int[] parms 的形式接受。

5.内省

参照:内省

不做解释。(目前我还未能理解)

二、JDK1.6

1.JTable的排序和过滤(不解释)

2.web服务元数据

如@WebService @WebMethod @WebResult @OneWay等注解的应用

3.脚本语言的支持(JSR 223)

在JDK1.6版本中多了一个扩展包:javax.script



JDK6增加了对脚本语言的支持(JSR 223),原理上是将脚本语言编译成bytecode,这样脚本语言也能享用Java平台的诸多优势,包括可移植性,安全等,另外,由于现在是编译成bytecode后再执行,所以比原来边解释边执行效率要高很多。加入对脚本语言的支持后,对Java语言也提供了以下好处。

【1】许多脚本语言都有动态特性,比如,你不需要用一个变量之前先声明它,你可以用一个变量存放完全不同类型的对象,你不需要做强制类型转换,因为转换都是自动的。现在Java语言也可以通过对脚本语言的支持间接获得这种灵活性。

【2】 可以用脚本语言快速开发产品原型,因为现在可以Edit-Run,而无需Edit-Compile-Run,当然,因为Java有非常好的IDE支持,我 们完全可以在IDE里面编辑源文件,然后点击运行(隐含编译),以此达到快速开发原型的目的,所以这点好处基本上可以忽略。

【3】通过引入脚本语言可以轻松实现Java应用程序的扩展和自定义,我们可以把原来分布在在Java应用程序中的配置逻辑,数学表达式和业务规则提取出来,转用JavaScript来处理。

Sun的JDK6实现包含了一个基于Mozilla Rhino的 脚本语言引擎,支持JavaScript,这并不是说明JDK6只支持JavaScript,任何第三方都可以自己实现一个JSR-223兼容的脚本引擎 使得JDK6支持别的脚本语言,比如,你想让JDK6支持Ruby,那你可以自己按照JSR 223的规范实现一个Ruby的脚本引擎类,具体一点,你需要实现javax.script.ScriptEngine(简单起见,可以继承javax.script.AbstractScriptEngine)和javax.script.ScriptEngineFactory两个接口。当然,在你实现自己的脚本语言引擎之前,先到scripting.dev.java.net project 这里看看是不是有人已经帮你做了工作,这样你就可以直接拿来用就行。

Scripting API

Scripting API是用于在Java里面编写脚本语言程序的API, 在Javax.script中可以找到Scripting API,我们就是用这个API来编写JavaScript程序,这个包里面有一个ScriptEngineManager类,它是使用Scripting API的入口,ScriptEngineManager可以通过jar服务发现(service discovery)机制寻找合适的脚本引擎类(ScriptEngine),使用Scripting API的最简单方式只需下面三步

【1】创建一个ScriptEngineManager对象

【2】通过ScriptEngineManager获得ScriptEngine对象

【3】用ScriptEngine的eval方法执行脚本

4.轻量级的Http Server

5.嵌入式数据库 Derby(在家里开发很方便有木有)

6.更简单,更强大的JAX-WS
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: