jdk8新特性(详解)
最近在复习外加看点面试题,jdk8的新特性虽然在项目用用到过一两个,准备系统的了解一下jdk8的常用新特性
一:Lambd表达式 也可称为闭包 引入函数式编程到Java中
为了使现有函数更好的支持Lambda表达式,Java 8引入了函数式接口的概念。
函数式接口就是只有一个方法的普通接口 加一个@FunctionalInterface注解即可
基本语法: (参数列表) -> {代码块}
列子: 给集合排序


注意事项:
参数类型可省略,编译器可以自己推断
如果只有一个参数,圆括号可以省略
代码块如果只是一行代码,大括号也可以省略
如果代码块是一行,且是有结果的表达式,
return可以省略
最后课减缩为 :

我们再来看遍历 :

把Lambda赋值给变量 : ( 一般不赋值给变量,而是直接作为参数传递 )

当表达式中要使用到成员变量时,就想匿名内部类使用成员变量一样,
为了保持数据的一直性,该变量的是final修饰,不可被改变的
在Lambda表达式使用成员变量时,底层会将该变量设置为final,若在匿名类中改变其值,会报错...
二 :函数式接口
Lambda表达式是接口的匿名内部类的简写形式; 一个简单的函数式接口如下所示

三 : 方法引用
什么意思呢 ? 吐会狗血,容我多研究研究网上大佬的讲解(属于jdk1.8的的一种新的 调用对象方法和构造的方式)
语法 : ( 先把笔记记下来 )
类名 :: 静态方法名
类名 :: 非静态方法名
类名 :: new ( 类的构造方法引用 )
实列对象 :: 非静态方法名 ( 指定某个实列的某个非静态方法引用)
四 : 接口中的静态方法和默认方法

调用 :

五:Optional :null判断
看教程上是可以对null进行判断的,但是我实践的时候对null进行判断会报空指针

六:Stream : 在项目中运用的最多的新特性,特别是针对集合


更多的API这里就不测试了,工作中多多留意即可
七:并行数组 ( 以显著加快多核机器上的数组排序 ) parallelXXX()

八:Data API 的更新

就到这里吧,api还有很多,学习中见到再学习。
jdk8新特性(详解)的更多相关文章
- JDK8新特性详解(二)
Stream流的使用 流操作是Java8提供一个重要新特性,它允许开发人员以声明性方式处理集合,其核心类库主要改进了对集合类的 API和新增Stream操作.Stream类中每一个方法都对应集合上的一 ...
- JDK8新特性详解(一)
虽然JDK8已经出来了N久,其新特性也在日益改变着我们的编码习惯和风格.虽然有些新特性用起来很顺手,但是总是傻傻分不清到底是哪个版本的.趁今天有时间,我们就来总结一下,JDK8有哪些能提升我们开发效率 ...
- Java9 新特性 详解
作者:木九天 < Java9 新特性 详解 > Java9 新特性 详解 摘要: 1.目录结构 2.repl工具 jShell命令 3.模块化 4.多版本兼容jar包 5.接口方 ...
- Java基础学习总结(33)——Java8 十大新特性详解
Java8 十大新特性详解 本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API ...
- ES6,ES2105核心功能一览,js新特性详解
ES6,ES2105核心功能一览,js新特性详解 过去几年 JavaScript 发生了很大的变化.ES6(ECMAScript 6.ES2105)是 JavaScript 语言的新标准,2015 年 ...
- 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高
第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...
- Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验
Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...
- 点击--》java9 新特性 详解
引言: 点击-->java9 新特性 详解 点击-->java8 新特性 详解 正题: 1.局部变量var 将前端思想var关键字引入java后段,自动检测所属于类型,一种情况除外,不能为 ...
- java10 新特性 详解
引言: 点击-->java9 新特性 详解 点击-->java8 新特性 详解 正题: 1.局部变量var 将前端思想var关键字引入java后段,自动检测所属于类型,一种情况除外,不能为 ...
随机推荐
- Spring4新特性
参考 : https://jinnianshilongnian.iteye.com/blog/1990081
- 关于Shader的学习记录
float4 _EmissiveColor; float4 _AmbientColor; float _MySliderValue; void surf (Input IN, inout Surfac ...
- Match-----Gray-value-----基于灰度值的模板匹配
rot 带旋转 mg 带金字塔 rad 角度转弧度 deg 弧度转角度 基于灰度受光照影响比较显著,实际项目中用的不多. MaxOverlap:0~1 指遮挡的部分比例 例如0.6,意思是遮挡了0 ...
- python入门 -- 学习笔记3
习题21:函数可以返回东西 过程解析: 1.定义函数:如def add(形参)函数 2.调用函数: add(实参) 别忘记加() 3.在函数调用的时候将实参的值传给形参,代入到函数中进行计算,r ...
- container injection——容器技术
(一)容器技术为什么出现 在很久很久以前,想要在线上服务器部署一个应用,首先需要购买一个物理服务器,在服务器安装一个操作系统,然后安装好应用所需要的各种依赖环境,最后才可以进行应用的部署,而且一台服务 ...
- VueJs相关命令
参考: https://www.jianshu.com/p/1626b8643676 安装axios $ npm install axios 如何打包 基于Vue-Cli,通过npm run ...
- PHP Laravel定时任务Schedule
前提:本文方法是利用Linux的crontab定时任务来协助实现Laravel调度(Mac也一样). 一.首先添加Crontab定时任务,这里只做简单介绍. 用命令crontab -e 添加如下内容 ...
- Python学习之MacBook Pro中PyCharm安装pip以及itchat
前言:Mac中自带的python没有用,自己安装了一个PyCharm,网上很多人说安装Itchat后会安装到自带的Python中去.本文记录怎么安装到自己安装的Python3.7中去.主要技术来源于h ...
- python小练习:使用循环和函数实现一个摇骰子小游戏。游戏规则如下:游戏开始,首先玩家选择Big or Small(押大小),选择完成后开始摇三个骰子,计算总值,11<=总值<=18为“大”,3<=总值<=10为“小”。然后告诉玩家猜对或者是猜错的结果。
python小练习:使用循环和函数实现一个摇骰子小游戏.游戏规则如下:游戏开始,首先玩家选择Big or Small(押大小),选择完成后开始摇三个骰子,计算总值,11<=总值<=18为“ ...
- windows Sql server performance monitor
对于sql server 性能的监控主要从2个方面: 1. sql server自带的监控 Management->SQL Server Logs->Activity Monitor 在这 ...