当前位置: 首页 > news >正文

Java8-特性

Interface接口:

接口的设计目的面向接口编程,封装方法提高可扩展性。

在JDK1.8之后接口中允许定义以default关键字定义的默认方法、static修饰的静态方法和抽象方法。

default修饰的默认方法可以被调用或者重写因为其属于实例方法,在调用时必须实现接口,如果有定义相同签名的方法必须进行重写。

static修饰的静态方法,不能被继承只能用interface接口名称调用。

Lambda表达式:

本质是匿名函数,用于把函数作为参数传入方法中,使得代码更加整齐简短。

代码中的语法格式为:1.(A)->B    2.(A)->{B;} 

函数式接口  Functional Interface:

在这种接口中只有一个抽象方法。(如果有多个抽象方法则在实现该接口时无法识别究竟要重写哪个抽象方法)

内置函数式接口 Built-in Functional Interfaces:

Predicate接口是返回值为布尔类型的断言型接口。(and,or,negate)

Function 接口接受一个参数并生成结果。(compose,andThen)

Comparator接口是比较器接口用于比较元素值的大小

Stream流:

分为中间操作或者最终操作,最终操作返回一特定类型的计算结果,而中间操作返回Stream本身,可以连续完成多个操作。

Filter过滤:

中间操作

Sorted排序:

中间操作

Map映射:

中间操作

Match匹配:

最终操作        返回值类型为boolean类型的值

Count计数:

最终操作        返回值类型是long

Collect收集:

最终操作        返回值类型是集合或字符串

Statistics统计:

最终操作        返回值类型是XXXConsumer

Parallel Streams并行流:

Stream有串行和并行两种,串行Stream上的操作是在一个线程中依次保存完成的,而并行Stream则是在多个线程上同时执行的。

函数式接口的总结:

1.Predicate、Function、Consumer、Comparator;

2.通过链式编程,使得它可以方便地对数据进行链式处理;

3.方法参数都是函数式接口类型;

4.一个Stream只能操作一次,操作完就关闭了,继续使用这个Stream会报错;

5.Stream不保存数据,不改变数据。

相关文章:

  • Mybatis-Plus快速入门|比Mybatis更简单好用的ORM框架
  • Java异常的捕获和处理
  • 若依一体式改包名
  • 【机器学习kaggle赛事】泰坦尼克号生存预测
  • 【C进阶】——详解10个C语言中常见的字符串操作函数及其模拟实现
  • vue--面试题
  • HotPlot
  • 只想买把牙刷却花了100块,千万警惕!一不小心就落入商家圈套
  • 检查java死锁的三种方式
  • 什么是内网穿透
  • 没交公积金可以贷款买房吗?
  • Go 语言中的多变量同时赋值、匿名变量以及变量作用域(Let‘s Go 四)
  • 设计模式学习35问笔记
  • matlab 设计BP神经网络对给出的英文字符分类
  • 第20讲:表中字段约束的概念以及基本使用
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 11111111
  • co模块的前端实现
  • docker python 配置
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • idea + plantuml 画流程图
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • IP路由与转发
  • Iterator 和 for...of 循环
  • Java编程基础24——递归练习
  • js递归,无限分级树形折叠菜单
  • MySQL几个简单SQL的优化
  • Netty源码解析1-Buffer
  • react-native 安卓真机环境搭建
  • React中的“虫洞”——Context
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 深度解析利用ES6进行Promise封装总结
  • 线上 python http server profile 实践
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​马来语翻译中文去哪比较好?
  • #include<初见C语言之指针(5)>
  • $forceUpdate()函数
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (7)STL算法之交换赋值
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (剑指Offer)面试题34:丑数
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (十)c52学习之旅-定时器实验
  • (转)使用VMware vSphere标准交换机设置网络连接
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .net反编译的九款神器
  • @requestBody写与不写的情况
  • @RequestMapping 的作用是什么?
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [Android]How to use FFmpeg to decode Android f...