您的位置:首页 > 其它

文章标题

2017-06-19 19:54 232 查看

Java JDK 各个版本的区别

Jdk 1.5的新特性(猛虎)

1, 静态导入

import 语句可以导入一个类或是某个包中所有的类。Import static 语句可以导入一个类中的某个静态方法或者所有的静态方法。

2, 自动装箱与拆箱

基本类型自动被封装到与它相同类型的对象中,于此同时,自动拆箱就是被装箱中的对象自动的被提取出来。

3, 枚举

把集合中的对象元素一个个提取出来,使代码更具有可读性,易于维护,它是个强类型,可以保证系统安全性。

4, 可变参数

可变参数的简单语法格式 method([argumentList], data … argumentName);

5, 内省(Intropector)

是java语言对Bean类属性,事件的一种缺省处理方法,之前的对一个属性的可以get和set方法来获得或者设置其值,但是有了内省可以通过它来获得某个对象的BeanInfo信息,然后通过BeanInfo来获取属性的描述器(PropertyDescriptor),通过这个描述器就可以获得这个属性对应的set和get方法,最后我们可以通过反射机制来调用这些方法;

6, 泛型

就是可以允许指定集合里的元素类型。

7, For-Each循环

JDK 1.6的新特性

1, Desktop 类和System Tray 类

Desktop可以打开系统默认的浏览器指定的URL,打开系统默认的邮件客户端给指定的邮箱发送邮件,用默认的应用程序打开或者编辑文件。后者可以用来在系统托盘区创建一个托盘程序。

2, 使用JAXB2(java Architecture for XML Binding)

它可以将一个Java对象转变成为XML格式,反之亦然。

3, 理解StAX

StAX是除了DOM和SAX之外的又一种处理XML的API。

4, 使用Compiler API

我们可以使用Compiler API动态的编译Java源文件,它可以结合反射功能可以实现动态的产生Java代码并编译执行这些代码。

5, 轻量级的HttpServer API

1.6提供了一个简单的HttpServer API,据此我们可以构建自己的嵌入式HttpServer,它支持http和https协议。

6, 用Console开发控制台程序

1.6中提供了Java.io.Console类专门用来访问基于字符的控制台设备。如果你的程序要在windows下的cmd或者linux下的Terminal交互,就可以用Console类代劳。

7, 对脚本语言的支持如,ruby, javascript.

JDK 1.7的新特性

1, switch 中可以使用字符串

2, ‘<>’这个玩意儿运用,List list = new ArrayList<>();泛型实例化类型自动推断。

3, 自定义自动关闭类

接口中声明一个关闭的方法,只要实现该接口,在该类对象销毁时会自动的调用close()方法,就可以关闭你想要关闭 的资源。

4, 新增一些取环境信息的工具方法

File.System.getJavaIoTempDir();//IO临时文件夹

File.System.getJavaHomeDir();//JRE的安装目录

File.System.getUserHomeDir();//当前用户目录

File.System.getUserDir();//启动java进程时所在的目录

5, Boolean类型反转,空指针安全,参与位运算

True->False, Flase->True,Null->Null

6, 两个char间的equals

Boolean Character.equalsIngnore(char ch1,char ch2)

7, 安全的加减乘除

8, 支持二进制文件

int binary = 0b1001_1001;

JDK 1.8的新特性

1, 接口的默认方法

1.8允许我们给接口中添加一个非抽象的方法,用default关键字即可。

2, Lambda表达式

List names = Arrays.asList(“peter”, “anna”, “mike”, “xenia”);

Collections.sort(names, new Comparator() {

@Override

public int compare(String a, String b) {

return b.compareTo(a);

}

});

Lambda表达式:

Collections.sort(names, (String a, String b) -> {

return b.compareTo(a);

});

3, 函数式接口

Lambda 表达式是如何在java的类型系统中表示的呢?每一个lambda表达式都对应一个类型,通常是接口类型。而“函数式接口”是指仅仅只包含一个抽象方法的 接口,每一个该类型的lambda表达式都会被匹配到这个抽象方法。因为 默认方法 不算抽象方法,所以你也可以给你的函数式接口添加默认方法。

我们可以在接口中添加@FunctionALInterface进行注解。

4, 方法与构造函数的引用

1.8可以使用关键字::来传递方法或者构造函数引用,下面的代码展示了如何引用一个静态方法

Converter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: