频道栏目
首页 > 资讯 > 其他综合 > 正文

jdk8新特性

17-02-14        来源:[db:作者]  
收藏   我要投稿

jdk8新特性:jdk8距离发布已经有些时间了,集团内部也在大力推广,恰值新项目也选用了jdk8做开发,查阅下资料做个小结。

较之与前几个版本,jdk8最大的改变莫过于引入了lambda表达式以及stream机制。
新特性如下:
1. 语言层面
1)lambda表达式与函数接口
lambda表达式(闭包)允许将一个函数当作方法的数据(传递函数)或者说把代码当作数据。代码更加简洁紧凑。 详细示例后文描述。
函数接口:为兼容现有功能,使其可转换为lambda表达式,提出函数接口概念。函数接口只有一个抽象方法的接口(可以有多个默认方法或者静态方法),可转换为lambda表示式。通过注解@FunctionalInterface说明。
2)方法引用
他人的示例
第一种方法引用是构造方法引用,语法是:Class::new ,对于泛型来说语法是:Class::new,请注意构造方法没有参数:

final Car car = Car.create( Car::new );
final List< Car > cars = Arrays.asList( car );

第二种方法引用是静态方法引用,语法是:Class::static_method请注意这个静态方法只支持一个类型为Car的参数。

cars.forEach( Car::collide );

第三种方法引用是类实例的方法引用,语法是:Class::method请注意方法没有参数。

cars.forEach( Car::repair );

最后一种方法引用是引用特殊类的方法,语法是:instance::method,请注意只接受Car类型的一个参数。

final Car police = Car.create( Car::new );
cars.forEach( police::follow );

3)接口中支持默认方法与静态方法
默认方法不同于抽象方法,可保证原应用的兼用型(抽象方法必须后实现类去实现;默认方法实现类可以继承,也可以override)。关键字 default,static

public interface DefaultableFactory { 

static Defaultable create(Supplier supplier) {
    return supplier.get();
}

default String defaultFunction() {
    return "it's defaultFunction";
}

void abstractFunction(); 
}

4)同一个声明处支持重复注解;注解支持类型更加广泛
5)方法参数反射
2. 集合库
1)引入stream机制以支持函数编程,允许集合对象中的大量操作,如串行或者并行的map-reduce转换

roster
.stream()
.filter(
    p -> p.getGender() == Person.Sex.MALE
        && p.getAge() >= 18
        && p.getAge() <= 25)
.map(p -> p.getEmailAddress())
.forEach(email -> System.out.println(email));  

2)hashmap性能优化
3. 安全性
4. 工具
jdeps: 用于包或者类级别文件依赖关系分析
5. 时间与日期
新的java.time包包含了所有关于日期、时间、日期时间、时区、Instant(跟日期类似但精确到纳秒)、duration(持续时间)和时钟操作的类。
6. Nashorn Javascript 引擎
7. io,nio
8. 并发
1)java.util.concurrent.ConcurrentHashMap包使用stream机制以及lambda表达式支持聚合操作
2)新增java.util.concurrent.locks.StampedLock 做读写锁
9. hotSpot
移除永生代,使用metaspace
JVM参数 -XX:PermSize 和 –XX:MaxPermSize被XX:MetaSpaceSize 和 -XX:MaxMetaspaceSize代替

其他特性及示例后续补上

相关TAG标签
上一篇:maven初次使用
下一篇:SpringMVC之处理器映射
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站