Java8新特性
1. Lambda表达式
匿名函数;
函数式接口(只有一个方法的普通接口)jdk1.8中有@FunctionalInterface注解声明;
2. 方法的默认实现和静态方法
- 接口中可以使用default关键字给方法添加默认实现;
主要为了接口升级,默认实现的存在可以不用修改之前的实现类
- 接口中可以定义静态方法。
3. 方法引用
可视为简化的Lambda表达式,共有4种形式:
- 引用构造方法:ClassName::new
- 引用类静态方法:ClassName::methodName
- 引用特定类的任意对象方法:ClassName::methodName
- 引用某个对象的方法:instanceName::methodName
4. 注解
jdk1.5引入了注解机制,但相同的注解在同一位置只能声明一次。jdk1.8中引入了重复注解机制,相同注解在同一个地方可以声明多次。
Java语言内置了三种注解:@Override、@Deprecated、@SuppressWarnings它们都在java.lang包内
5. 类型推测
泛型支持类型推测
6. 参数名字
jdk1.8在编译时增加-parameter选项,增加反射API与Parameter.getName()方法实现了获取方法参数名的功能
7. 新增Optional类
8. 新增Stream类
jdk1.8新增了Stream类,把函数式编程的风格引入到了Java语言中
9. 日期新特性
jdk1.8之前处理日期相关的类主要有三个:
- Calendar:线程不安全
- DateFormat:
- Date:属性可变,线程不安全
10. 调用JavaScript代码
借助ScriptEngineManager、ScriptEngine类可实现调用JavaScript代码
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
engine.eval("function f(){return 'Hello';};f()+'world!';");
11. Base64
jdk1.8把Base64编码添加到了标准类库中,可以作为电子邮件、Web Service附件的传输编码。
12. 并行数组
增加了对数组并行处理的方法:parallelXxx

浙公网安备 33010602011771号