jdk8新特性介绍及使用心得

目录

jdk8 新特性汇总

jdk8新特性常用的打开方式


jdk8 新特性汇总

(一).lamda表达式

(二).默认方法 default

(三).Stream API

(四).Date Time API

(五).Optional 类

jdk8新特性常用的打开方式

(一).lamda表达式(类似一种语法糖),本质是一个匿名内部类

(parameters) -> expression 或 (parameters) ->{ statements; }


(二) .默认方法,增强接口

定义方式:在方法名前加上default修饰符

接口的实现类可以选择不重写默认方法。

interface A{
    /*
    *默认方法的语法
    */
    访问修饰符 default 返回值类型 方法名(){
        System.out.println("Hello,我是默认方法");
    }
}
//默认方法不需要重写 当然如果你需求不一样也可以进行重写
class B implements A{
    
}

(三).Stream()   常说的“用流处理”

jdk1.8版本,oracle在Collection下新增的一个默认方法

default Stream<E>

官方解释:stream() 返回以此集合作为源的顺序 Stream 。支持顺序和并行聚合操作的一系列元素。

常用流处理:

1.stram()方法:将集合转为流
2.collect()方法:将流转为集合
3.filter()方法:将转为流的集合过滤出满足要求的流

List<Integer> list = Arrays.asList(6, 7, 3, 8, 1, 2, 9);
  Stream<Integer> stream = list.stream();
  stream.filter(x -> x > 7).forEach(System.out::println);


4.map()方法:将每个元素映射成新元素

//将集合中的每一个元素转为字符串
        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
        List<String> result = list.stream()
                .map(x -> String.valueOf(x))
                .collect(Collectors.toList()); 
        System.out.println(result);//[1, 2, 3, 4, 5]

5.limit(n):获取n个元素
6.skip(n):跳过n元素
7.skip和limit组合实现分页(对数据库的压力没有减轻,只是看着分页了)
8.distinct:去除重复元素
9. foreach: 遍历


(四).Date Time API

LocalDate    表示日期,包含年月日,格式为2019-10-16

LocalTime    表示时间,包含时分秒,格式为16:38:54.158549300

LocalDateTime    表示日期时间,包含年月日,时分秒,格式为2018-09-06T15:33:56.750

DateTimeFormatter    日期时间格式化类。

lnstant    时间戳,表示一个特定的时间瞬间。

Duration    用于计算2个时间(LocalTime,时分秒)的距离

Period    用于计算2个日期(LocalDate,年月日)的距离

ZonedDateTime    包含时区的时间



(五).Optional 类

官方解释 :

可能包含或不包含非空值的容器对象。 如果一个值存在, isPresent()将返回trueget()将返回值。的

提供依赖于存在或不存在包含值的其他方法,例如orElse() (如果值不存在则返回默认值)和ifPresent() (如果值存在执行代码块)。

这是一个value-based课; 使用身份敏感的操作(包括引用相等(的==上的实例),标识哈希码,或同步) Optional可具有不可预测的结果,应当避免。

结合stream()的用法

 Stream接口中定义了一个返回Optional的方法:

Optional<T> findFirst();
返回描述此流的第一个元素的Optional如果流为空,则返回一个空的

Optionalmax(Comparator<? super T> comparator)根据提供的 Comparator返回此流的最大元素。

....未完待续

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值