了解jdk1.8版本一些新的特性

一、了解jdk1.8版本一些新的特性

1、新增了函数式接口,只有一个抽象方法的接口。
2、新增lambda表达式,java也实现了函数式编程。
3、新增Stream api,对集合或数组元素进行串行或并行的流式(生产线)操作。
4、接口新增了default 方法和静态方法。
5、新增与日期时间处理有关的新式datatime api,这些api相对于老的Date,carlendar更加方便。
6、增加了方法引用
7、增加了线程并发相关的一些api。

二、全面的了解lambda表达式

1、什么是函数式编程
1952年出现的LISP 语言采用的是函数式编程的方式,它的特点在于采用无参的函数去实现某种功能,这种函数执行非常稳定,不受外部干扰;有参的函数更具有使用的灵活性,但它受到了外界的侵入,数据有可能不稳定会产生不希望的结果。
2、现代的函数式编程
讲究把函数当作参数进行传递,最大的好处就是程序变得更加简单,编程时不再考虑怎么做,而仅考虑做什么。
3、java为什么要引入函数式编程
Java是面向对象的,所有的操作都是基于对象的操作,创建对象,在对象上调用方法,通过对象来使用属性,好处在于更接近人类的自然思维方式,更有利于代码的重用及扩展。在很长一段时间内,函数式编程已经出现在多种语言中,java一直不接受,但在 oracle公司的主持下,还是作了引用。Jdk1.8最大的改变或者说革命性的行动就是引入了函数式编程。
4、lambda表达式在java中最直接优点
代码可以延迟执行。

 String str1 = "abc";
 String str2 = "xyz";
 String str3 = "opq";
// log(2,str1+str2+str3);
 log(2,(level)->{
     if(level == 1)
         System.out.println(str1+str2+str3);//延迟执行
 });

三、jdk1.8新增的函数式接口

Package java.util.function 是1.8才有的,提供了lambda表达式和方法引用的目标类型。这里所指的目标类型就是多种可以通用的函数式接口。
1、Supplier 接口,供应商,
抽象方法,T get() 获得结果。
2、Consumer 接口,消费者

void accept(T t) 接受参数,做任意事情

default Consumer andThen(Consumer<? super T> after) 提供了一种链式操作,给一份数据,利用接口的方法做多次事情.
3、Predicate
boolean test(T t) 该方法依据给定的参数作相应的运算,得到一个布尔值
default Predicate and(Predicate<? super T> other)
返回一个组合的逻辑表达式,表示该表达式与另一个表达式的短路逻辑&&。 这也是一种链式操作。
4、Interface Function<T,R>
表示接受一个参数并产生结果的函数。
R apply(T t)
将此函数应用于给定的参数,参数与返回值都是泛型,可以自由组合

四、jdk1.8新增的Stream 流式接口

 Interface Stream<T>

1、什么是流式操作?
在大数据技术中,提供了针对大并发的计算模型,称为map reduce,map是映射,reduce 是归约,映射就是从一堆数据中找出具有共同key的一组数据,归约就是基于映射的结果,对各组数据进行再分类或聚合等这样的操作,通过归约再生成最终结果,这种操作都是多进程的分布式操作。
2、Stream的作用
Stream的作用主要通过其中的默认方法和静态来体现。
3、Stream 方法的分类
1、延迟方法,这类方法的执行结果仍然是流。
2、终结方法,它会中止流的执行流程,得到最终的计算结果。
提示:以上方法都是基于流类型的方法,所以使用这些方法前必须把集合和转换为流类型的对象。
4、流式操作的好处
流式操作是针对集合或数组的,它可以把一组数组按照咱们所设计的流式执行分步操作,从而得到最终的结果。原来没有Stream时,这些操作会比较烦琐,代码要写很多才能完成,现在基于Stream就简单多了。

五、方法引用

是基于lambda表达式的另一种写法,在写lambda表达式时,如果存在某种方法,调用该方法时可以采用一种更简单的方式,java新增了一种符号 “::”来实现方法引用。
方法引用主要体现在五大部分:
实例方法引用,静态方法引用,构造方法引用,数组构造方法引用,,super方法引用

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值