摘要:
上一次【http://www.cnblogs.com/webor2006/p/8297603.html】在最后用stream.iterate()生成了6个奇数,接着基于它来实现如下需求:找出该流中大于2的元素,然后再将每个元素乘以2,然后忽略掉流中的前两个元素,然后再取流中的前两个元素,最后求出流中 阅读全文
摘要:
继续操练Stream,直接上代码: 而咱们要返回ArrayList,显示可以用构造引用来传递到里面,因为它刚好符合Supplier函数式接口的特性:不接收参数返回一个值,所以: 接下来试着将Stream转换成其它集合类型,比如:Set,如下: 接下来将集合中的字符串元素拼成一起然后再输出出来,继续可 阅读全文
摘要:
继续对流进行学习,首先先说明一下流的特点: 1、Collection提供了新的stream()方法。 2、流不存储,通过管道的方式获取值。 3、本质是函数式的,对流的操作会生成一个结果,不过并不会修改底层的数据源,集合可以作为流的底层数据源。其中需要注意标红的说明,也就是说对于流操作它的源数据是不会 阅读全文
摘要:
关于默认方法【default method】的思考: 在上一次【http://www.cnblogs.com/webor2006/p/8259057.html】中对接口的默认方法进行了学习,那在Java8中在接口中接出默认方法是为了解决什么问题或者说规避什么问题呢?凡是在JDK引入一个新的概念肯定是 阅读全文
摘要:
方法引用: 之前花了很多时间对Lambda表达式进行了深入的学习,接下来开启新的主题 方法引用(Method References),其实在之前的学习中已经使用过了,如: 那方法引用跟Lambda表达式是一种什么关系呢?其实可以理解为它是Lambda表达式的一个语法糖(Syntactic sugar 阅读全文
摘要:
自上次【http://www.cnblogs.com/webor2006/p/8243874.html】函数式接口的学习告一段落之后,这次来学习一下Optional,它并非是函数式接口的概念,点击查看源码便知: 那它是用来干嘛的呢?其实用它是用来避勉非常常见的NPE(NullPointerExcep 阅读全文
摘要:
Supplier接口: 继续学习一个新的函数式接口--Supplier,它的中文意思为供应商、提供者,下面看一下它的javadoc: 而具体的方法也是相当的简单,就是不接受任何参数,返回一个结果: 对它有了大概的了解之后,下面用代码来使用一下它: 貌似这函数的使用相当简单呀,但是简单并非是它的用处少 阅读全文
摘要:
上次【http://www.cnblogs.com/webor2006/p/8214596.html】对Predicate函数接口进行了初步的学习,其中提到了在未来要学习的Stream中得到了大量的应用, 正因为很重要,所以这次再详细的对它进行学习,其中还包含它里面定义的一些默认的方法,为之后的学习 阅读全文
摘要:
This锁: 关于什么是This锁下面用实现来说明一下它: 那下面用两个线程分别调用这两个方法,如下: 看结果: 可见两个方法是同时输出的,因为m2()方法并未上锁,所以就不存在争锁的问题,那这时给m2()方法也加上同步锁,如下: 那此时两个线程调用的m1()、m2()方法能同时执行么,看结果: 很 阅读全文
摘要:
BiFunction函数式接口: 在上次中已经对BiFunction接口进行了初步的认识,这里对它进一步学习,这里打算新建一个Person实体,然后新建若干个Person的实例存放在集合中,最后再根据若干条件来从集合中挑选满足指定条件的元素,下面开始: 然后新建几个Person对象存放在集合元素中: 阅读全文