jdk8新特性

2019-04-14 18:41发布

Java 8th 新特性系列
lambda优点:lambda 表达式是 java 8th 给我们带来的几个重量级新特性之一,借用 lambda 表达式,可以让我们的程序设计更加简洁。
一、行为参数化行为参数化简单的说就是将方法的逻辑以参数的形式传递到方法中,方法主体仅包含模板类通用代码,而一些会随着业务场景而变化的逻辑则以参数的形式传递到方法之中,采用行为参数化可以让程序更加的通用,以应对频繁变更的需求。
二. Lambda 表达式2.1 Lambda 表达式的定义与形式我们可以将 lambda 表达式定义为一种 简洁、可传递的匿名函数,首先我们需要明确 lambda 表达式本质上是一个函数,虽然它不属于某个特定的类,但具备参数列表、函数主体、返回类型,甚至能够抛出异常;其次它是匿名的,lambda 表达式没有具体的函数名称;lambda表达式可以像参数一样进行传递,从而极大的简化代码的编写,其格式定义如下:
  1. 参数列表 -> 表达式
  2. 参数列表 -> {表达式集合}
需要注意的是,lambda表达式隐含了 return 关键字,所以在单个的表达式中,我们无需显式的写return关键字,但是当表达式是一个语句集合的时候,则需要显式添加 return 关键字,并用花括号 {} 将多个表达式包围起来
三、去掉了PermGen(PermGen Space:指的是内存的永久区)
四、SelectorProvider基于Solaris事件端口机制的Solaris的新实现。要使用,请将系统属性java.nio.channels.spi.Selector设置为值sun.nio.ch.EventPortSelectorProvider。
五、默认接口方法从 java 8th 开始,接口不只是一个只能声明方法的地方,我们还可以在声明方法时,给方法一个默认的实现,我们称之为默认接口方法,这样所有实现该接口的子类都可以持有该方法的默认实现。

六. java集合流式操作集合API是Java API中最重要的部分。基本上每一个java程序都离不开集合。尽管很重要,但是现有的集合处理在很多方面都无法满足需要。一个原因是,许多其他的语言或者类库以声明的方式来处理特定的数据模型,比如SQL语言,你可以从表中查询,按条件过滤数据,并且以某种形式将数据分组,而不必需要了解查询是如何实现的——数据库帮你做所有的脏活。这样做的好处是你的代码很简洁。很遗憾,Java没有这种好东西,你需要用控制流程自己实现所有数据查询的底层的细节。其次是你如何有效地处理包含大量数据的集合。理想情况下,为了加快处理过程,你会利用多核架构。但是并发程序不太好写,而且很容易出错。Stream API很好的解决了这两个问题。它抽象出一种叫做流的东西让你以声明的方式处理数据,更重要的是,它还实现了多线程:帮你处理底层诸如线程、锁、条件变量、易变变量等等。参考文档:http://ifeve.com/java8-adopting-streams/