随笔分类 -  JAVA8

摘要:为什么我们需要新的日期/时间API 在开始研究Java 8日期/时间API之前,让我们先来看一下为什么我们需要这样一个新的API。在Java中,现有的与日期和时间相关的类存在诸多问题,其中有: Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式 阅读全文
posted @ 2017-10-13 17:49 vvning 阅读(558) 评论(0) 推荐(0)
摘要:从形参到实例方法的实参 从形参到目标 从形参到构造函数实参 传递两个形参作为实参 第一个形参作为调用的目标而传递 阅读全文
posted @ 2017-10-13 17:09 vvning 阅读(212) 评论(0) 推荐(0)
摘要:你已经学习了Stream API能够让你以声明式的方式帮助你处理集合。我们看到collect是一个将管道流的结果集到一个list中的结束操作。collect是一个将数据流缩减为一个值的归约操作。这个值可以是集合、映射,或者一个值对象。你可以使用collect达到以下目的: 将数据流缩减为一个单一值: 阅读全文
posted @ 2017-10-13 16:54 vvning 阅读(481) 评论(0) 推荐(0)
摘要:身为一名Java程序员,大家可能都有这样的经历:调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。这正是一些类似Guava的外部API试图解决的问题。一些JVM编程语言比如Scala、Ceylon等 阅读全文
posted @ 2017-10-13 15:57 vvning 阅读(269) 评论(0) 推荐(0)
摘要:为什么要使用Stream Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream 阅读全文
posted @ 2017-10-13 15:31 vvning 阅读(754) 评论(0) 推荐(0)
摘要:静态方法 默认方法 Java8采用注解@FunctionalInterface来保证接口为函数接口,即接口中只显式声明一个抽象方法,新增的静态方法和默认方法是否会影响其成为一个函数接口呢,并不会,原因是:静态方法和默认方法均为非抽象方法!同理,复写父类的非抽象方法也不影响其成为一个函数接口,如复写e 阅读全文
posted @ 2017-10-13 10:03 vvning 阅读(213) 评论(0) 推荐(0)
摘要:POJO 方法的引入分为以下四种: 一般情况下,用方法引入代替普通Lambda表达式均满足以下条件: 返回值类型相同 参数类型及个数相同 比如第1/2/4种形式。 第3种形式比较特殊,需满足以下条件: 返回值类型相同 两个参数 类型相同 阅读全文
posted @ 2017-10-12 18:14 vvning 阅读(190) 评论(0) 推荐(0)
摘要:三个函数接口概述JDK预定义了很多函数接口以避免用户重复定义。最典型的是Function:@FunctionalInterfacepublic interface Function { R apply(T t);}这个接口代表一个函数,接受一个T类型的参数,并返回一个R类型的返回值。另一个预定义函数接口叫做Consumer,跟Function的唯一不同是它没有返回值。@Functiona... 阅读全文
posted @ 2017-10-12 17:35 vvning 阅读(242) 评论(0) 推荐(0)
摘要:Lambda表达式是JAVA最重要的新特性,在学习之前有两个概念需要了解函数式接口java8提供一个新的注解@FunctionalInterface,用于标注函数式接口,此类接口只能包含一个抽象方法。Lambda表达式Lambda表达式由三部分构成:参数列表、箭头、一个表达式或语句块。举例: Lambda本质上是一个匿名方法public int add(int x, int y) { r... 阅读全文
posted @ 2017-10-12 14:45 vvning 阅读(167) 评论(0) 推荐(0)