java8 action 第一章笔记

Java8实战
Java1.0有线程和锁、甚至有一个内存模型。
Java5.0添加了工业级的构建模块,如线程池和并发集合。
java7添加了分支/合并(fork/join)框架,是的并行变得更实用。
java8添加了stream并发流处理。

目前要用到多处理器,以往是用线程,现在用java8的一些现成的api就更加方便了。

以前是方法传递参数,java8是方法传递代码(个人理解是方法可以作为参数,传入方法)

stream流,一个是具有并行数据处理特性(避免Synchronized编写代码导致多核cpu性能低下),另外也是方法里面传递代码(方法也能返回代码)的一个扩充需要。

java8并行新特性的出现是因为大数据量的需求,促使java要有多核并行特性。

java8提供了三大令人注意的特性:
1、StreamAPI
2、向方法传递代码的技巧
3、接口中的默认方法

向方法传入代码时,注意(该行为对任何输入都是安全,这导致了必须要是没有共享的可变数据。要解决没有共享的可变数据、可以加锁来控制)

======================
java8的方法引用:::
Flie [] hiddenFiles = new File(".").listFiles(File::isHidden)

这个是对某个目录下面所有的隐藏文件都需要找出来。

如果是用java8之前的来实现:

Flie [] hiddenFiles = new File(".").listFiles(new FlieFilter(){
    @override
    public boolean accept(File f){
        return f.isHidden();
    }
});

过滤隐藏文件的方法需要包在FileFiler新对象里面,然后再传给listFiles()方法。但是java8,直接调用File::isHidden这个方法就可以,并且是将方法传给方法。

这个是利用java8中已有的实现方法引用的类直接调用,如果有些类没有这么直接的方法调用,那么可以用lambda表达式() -> {}。

将方法作为参数值传递给其他方法,可以减少一些重复代码,更容易维护(几个方法只有一两行代码不相同,到时改,可能会漏改)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值