关于Java语言1.8版本新特性的学习笔记

1 接口的默认方法

接口(Interface)中可以有方法的具体实现,使用default这一关键字进行标记。可以有一个至多个default修饰的方法,调用过程与传统的类(Class)中的方法一致。

简单的示例如下:

interface Interface1 {
    default void print() {
        System.out.println("a default method");
    }

    default void print1() {
        System.out.println("another default method");
    }

    void print2();
}

2 Lambda表达式

Lambda表达式允许函数作为一个参数传入方法中,使得对象的创建更加简洁。
因为函数是匿名传入的,所以一般采用只有一个抽象函数的接口(函数式接口),这样才能与Lambda表示式适配。
以生成一个Runnable接口的实现类对象为例,比较传统方法和Lambda表达式的区别。
传统的匿名对象:

ExecutorService executorService = Executors.newSingleThreadExecutor();
executorService.submit(new Runnable() {
            @Override
            public void run() {
                System.out.println("run method");
            }
        });

使用Lambda表达式后:

ExecutorService executorService = Executors.newSingleThreadExecutor();
executorService.submit(() -> System.out.println("run method"));

3 函数式接口

函数式接口使用@FunctionalInterface注解表示,修饰于接口。表示该接口有且仅有一个抽象方法,但是可以存在多个非抽象方法。函数式接口可以隐式地转换为Lambda表达式。
例如Runnable接口,Comparator接口。

4 方法引用

方法引用是通过::关键字来引用类的静态方法或成员方法,一般与流Stream一起使用。

5 Stream

Stream(流)是一个来自数据源(可以是集合、数组、I/O channel 、产生器generator)的元素队列,可以更简洁的进行元素队列的内部迭代或聚合操作。
在Java中,集合接口可以通过stream()或者parallelStream()方法创建流,并通过forEach()、map()、sorted()等方法完成流数据的整体操作。

6 可重复注解

7 Optional类

8 Date/Time API

9 Base 64

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值