Java8新特性
清风挽歌
keep moving
展开
-
Stream API——Java8新特性
StreamAPIJava8API中添加了新的抽象称为流Stream,把真正的函数式编程风格引入到Java中,可以让你以一种声明的方式处理数据,Stream使用一种类似SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象,StreamAPI极大简化了集合框架的处理,这种风格将需要处理的元素集合看作一种流,流在管道中传输,并且可以在管道的节点上进行处理,比如:筛选、排序、聚合。Stream流有一些新特性:Stream流不是一种数据类型,不保存数据,他只是在原数据集上定义了一原创 2020-10-05 00:04:03 · 129 阅读 · 0 评论 -
43个函数式接口——Java8新特性
43个函数式接口函数式接口Lambda表达式用来实现SAM接口的,SAM(Single Abstract Method)接口中只有一个抽象方法需要实现,当然该接口可以包含其他非抽象的方法。满足“SAM“特征的接口都可以称为函数式接口(就是用来简化编程模型的),但是如果要更明确一点,最好在声明接口时,在上面加上**@FunctionalInterface**JDK8之前核心类库中就已经存在很多SAM接口了:java.lang.Iterablejava.io.FileFilterjava.lang原创 2020-10-03 23:05:37 · 173 阅读 · 0 评论 -
新增时间日期API——Java8新特性
新增日期时间API在JDK8中新增加了java.time包是JSR310规范的实现,它的目的是弥补旧的日期/时间API实现中所有缺陷。新的时间日期API的特点和设计原则:不变性:新的日期时间API中,所有的类都是不可变的,这种设计有利于并发编程关注点分离:新的API将人可读的日期时间和机器时间明确分离,为日期(Date)、时间(Time)、日期时间(DateTime)、时间戳(unix timestamp)以及时区定义了不同的类清晰:在所有类中,方法都被明确定义用以完成相同行为。所有类都使用了原创 2020-10-02 16:52:27 · 181 阅读 · 0 评论 -
Lambda表达式——Java8新特性
Lambda表达式JDK8中增加,很多语言都支持Lambda表达式,Java中Lambda表达式其实就是实现SAM接口的语法糖,使得Java也算是支持函数式编程的语言,Lambda表达式写得好极大的减少了代码的冗余,同时可读性也更好。Lambda表达式Java8中引入了一个新的操作符“ -> ”,该操作符称为箭头操作符,或者Lambda操作符箭头操作符将Lambda体分为两个部分:左侧:Lambda表达式的参数列表右侧:Lambda表达式中需要执行的功能,即Lambda体Lam原创 2020-09-30 00:00:37 · 128 阅读 · 0 评论 -
Optional类——Java8新特性
Optional类从前,为了解决空指针异常,Google公司著名的Guava项目引入了Optional类,Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代码,受到了Google Guava的启发,Optional类已经成为Java8类库中的一部分。Optional其实是一个容器,他可以保存T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显示进行空值检测(if(obj!=null){···})创建OptionalOptional.of(T va原创 2020-09-26 23:07:59 · 212 阅读 · 0 评论