jdk1.8 的新特性

  • Post author:
  • Post category:其他





jdk1.8 的新特性




一、 Lambda 表达式

Lambda 允许把函数作为一个方法的参数。

new Thread (()-> System.out.println ("abc" ) ) .start() ;



二、 方法引用

方法引用允许直接引用已有 Java 类或对象的方法或构造方法。

Arraylist<String> list = new ArrayList<>();
	list.add("a");
	list.add("b");
	list.forEach(System.out::println);
	//将 System.out::println 方法作为静态方法来引用。



三、函数式接口

有且仅有一个抽象方法的接口叫做函数式接口,函数式接口可以被隐式转换为Lambda 表达式。通常函数式接口上会添加@FunctionalInterface 注解



四、 接口允许定义默认方法和静态方法

从 JDK8 开始,允许接口中存在一个或多个默认非抽象方法和静态方法。



五、Stream API

新添加的 Stream API(java.util.stream)把真正的函数式编程风格引入到 Java中。这种风格将要处理的元素集

合看作一种流,流在管道中传输,并且可以在管道的节点上进行处理,比如筛选,排序,聚合等。

List<String> list = Arrays.asList("abc","","abc","bc","wqer");
	list.stream()//获取集合的流对象
		.filter(string -> !string.isEmpty())//对数据进行过滤操作,过滤掉空字符串
		.distinct()//去重
		.forEach(a -> System.out.println(a));



六、日期/时间类改进

之前的 JDK 自带的日期处理类非常不方便,我们处理的时候经常是使用的第三方工具包,比如 commons-lang

包等。不过 JDK8 出现之后这个改观了很多,比如日期时间的创建、比较、调整、格式化、时间间隔等。

这些类都在 java.time 包下,LocalDate/LocalTime/LocalDateTime。



七、Optional 类

Optional 类是一个可以为 null 的容器对象。如果值存在则 isPresent()方法会返回 true,调用 get()方法会返回该对象。

String string ="abc";

Optional<String> optional = Optional.of(string);
boolean present = optional.isPresent();
String value = optional.get();
System.out.println(present+"/"+value);



八、 Java8 Base64 实现

Java 8 内置了 Base64 编码的编码器和解码器。



版权声明:本文为Alfred_tfk原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。