# jdk8 新特性总结

Jdk8 主要
  1. Lambda 表达式 − Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中)。

    1. 也就是匿名内部类的 ‘语法糖’ (简化匿名内部类的书写)

      1. lambda表达式的形式 : (函数式接口中唯一方法的参数) -> {方法的具体实现}
    2. 函数式编程

    3. 方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。

    4. 特性说明:

      1,函数式接口仅仅只有一个方法(非默认或静态方法),用于显示转换成ladbma表达式。
      2, java.lang.Runnable接口,java.util.concurrent.Callable接口是两个最典型的函数式接口。
      3.如果一个函数式接口添加一个普通方法,就变成了非函数式接口(一般定义的接口)。
      4.Jdk8 规范里添加了注解@FunctionalInterface来限制函数式接口不能修改为普通的接口
      
    5. supllier 生产型接口

      suplier<T> 
      T get();
      
    6. consumer 消费 (使用) 型接口

    7. consumer<T>
      void accept(T t)
      andThen 
      

      andThen方法的使用: 可以连接两个consumer接口

      consumer<String> conn1;
      consumer<String> conn2;
      // 两个接口对象连接使用 也就是对str对象进行二次操作
      conn1.andThen(conn2).accpet(String str) 
      
  2. 默认方法 − 默认方法就是一个在接口里面有了一个实现的方法。

    1. 讲解接口的时候可以提及

      ​ 例

      package com.java8.defaultmethod;
       
      public interface Interface1 {
       
      	void method1(String str);
      	//a default method
      	default void log(String str){
      		System.out.println("I1 logging::"+str);
      	}
      }
      
  3. 新工具 − 新的编译工具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。

  4. Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。

    ​ stream:是一个接口 继承了BaseStream 定义整合了n多规范

    1. public interface Stream<T> extends BaseStream<T, Stream<T>> 
      
  5. Date Time API − 加强对日期与时间的处理

  6. Optional 类 − Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。

  7. Nashorn, JavaScript 引擎 − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。

  8. 重复注解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值