23 jdk8新特性

问题

jdk8有哪些新特性

答案

  • Lambda 表达式 − Lambda 允许把函数作为一个方法的参数。
    使用lambda表达式之前是这样:
        Integer[] is=new Integer[]{43,65,87,324,76,12,61,13};
        Arrays.sort(is, new Comparator<Integer>() {
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });

使用lambda表达式之后是这样:

        Integer[] is=new Integer[]{43,65,87,324,76,12,61,13};
        Arrays.sort(is, (o1,o2) -> o2-o1);
        System.out.println(Arrays.toString(is));
  • 方法引用 − 引用已有Java类或对象(实例)的方法或构造器,使得语言的构造更紧凑简洁。
        List names = new ArrayList();
        names.add("ali");
        names.add("xiaoli");
        names.add("zhangli");
        names.forEach(System.out::println);
  • 默认方法 − 默认方法就是一个在接口里面有了实现的方法。
public interface UserService {

    // static修饰符定义静态方法,只能通过接口名称来调用
    static void staticMethod() {
        System.out.println("接口中的静态方法");
    }

    // default修饰符定义默认方法,只能通过接口实现类的对象来调用
    default void defaultMethod() {
        System.out.println("接口中的默认方法");
    }
}
  • 函数式编程,提供了四个基础的接口
    (1)Supplier < T >: 数据提供器,可以提供 T 类型对象;无参的构造器,提供了 get 方法;
    (2)Function < T,R >:数据转换器,接收一个 T 类型的对象,返回一个 R类型的对象; 单参数单返回值的行为接口;提供了 apply, compose,andThen, identity 方法;
    (3)Consumer < T >: 数据消费器, 接收一个 T类型的对象,无返回值,通常用于设置T对象的值; 单参数无返回值的行为接口;提供了 accept, andThen 方法;
    (4)Predicate< T >: 条件测试器,接收一个 T 类型的对象,返回布尔值,通常用于传递条件函数; 单参数布尔值的条件性接口。提供了 test (条件测试) , and-or- negate(与或非) 方法。其中, compose, andThen, and, or, negate 用来组合函数接口而得到更强大的函数接口。
  • Stream 流
  • Optional 类 − 解决空指针异常。
  • Date Time API − 加强对日期与时间的处理。
  • JavaScript引擎Nashorn、类依赖分析器jdeps
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值