最近在复习外加看点面试题,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新特性(详解)的更多相关文章

  1. JDK8新特性详解(二)

    Stream流的使用 流操作是Java8提供一个重要新特性,它允许开发人员以声明性方式处理集合,其核心类库主要改进了对集合类的 API和新增Stream操作.Stream类中每一个方法都对应集合上的一 ...

  2. JDK8新特性详解(一)

    虽然JDK8已经出来了N久,其新特性也在日益改变着我们的编码习惯和风格.虽然有些新特性用起来很顺手,但是总是傻傻分不清到底是哪个版本的.趁今天有时间,我们就来总结一下,JDK8有哪些能提升我们开发效率 ...

  3. Java9 新特性 详解

    作者:木九天   <   Java9 新特性 详解  > Java9 新特性 详解 摘要: 1.目录结构 2.repl工具 jShell命令 3.模块化 4.多版本兼容jar包 5.接口方 ...

  4. Java基础学习总结(33)——Java8 十大新特性详解

    Java8 十大新特性详解 本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API ...

  5. ES6,ES2105核心功能一览,js新特性详解

    ES6,ES2105核心功能一览,js新特性详解 过去几年 JavaScript 发生了很大的变化.ES6(ECMAScript 6.ES2105)是 JavaScript 语言的新标准,2015 年 ...

  6. 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高

    第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...

  7. Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验

    Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...

  8. 点击--》java9 新特性 详解

    引言: 点击-->java9 新特性 详解 点击-->java8 新特性 详解 正题: 1.局部变量var 将前端思想var关键字引入java后段,自动检测所属于类型,一种情况除外,不能为 ...

  9. java10 新特性 详解

    引言: 点击-->java9 新特性 详解 点击-->java8 新特性 详解 正题: 1.局部变量var 将前端思想var关键字引入java后段,自动检测所属于类型,一种情况除外,不能为 ...

随机推荐

  1. 尚硅谷springboot学习30-docker安装mysql示例

    docker pull mysql 错误的启动示例 错误日志:需要设置密码 正确的启动 但还不能直接使用,因为没有做端口映射,外界无法连接 可用的启动 连接成功 几个高级的操作 指定配置文件 dock ...

  2. git push以后GitHub上文件夹灰色 不可点击

    1.删除本地文件夹里的 .git .gitignore文件 2.如果没成功,就把文件名改下,应该是有缓存,改完名后再add/commit/push

  3. 高性能迷你React框架anujs1.1.0发布

    本版本对setState与forceUpdate内部依赖的setStateImpl进行了重构,性能稳定在60pfs之上.并且将组件实例的所有内部方法与属性都改成以___开头. https://gith ...

  4. k8s之配置flanneld网络

    Flannel是Overlay网络的一种,也是将源数据包封装在另一种网络包里面进行路由转发和通信,目前已经支持UDP.VXLAN.AWS VPC和GCE路由等数据转发方式. Flannel通过给每台宿 ...

  5. java学习笔记(十一):重写(Override)与重载(Overload)

    重写(Override) 重写是子类对父类的允许访问的方法的进行重新编写, 但是返回值和形参都不能改变. 实例 class Animal{ public void run(){ System.out. ...

  6. linux环境启动数据库

    1.查看数据库监听的状态: 监听状态:lsnrctl status  出现如下列截图所示数据,说明切切换账户有问题:切换账户时要家:-:  如 su - oracle 第一步:打开Oracle监听$ ...

  7. Codeforces Round #499 (Div. 2)

    Codeforces Round #499 (Div. 2) https://codeforces.com/contest/1011 A #include <bits/stdc++.h> ...

  8. java基础-- 之类型转换 和 一些运算符

    ---   首先   看一个 Scanner  类 import java.util.Scanner; public class TestScanner { public static void ma ...

  9. [leetcode]99. Recover Binary Search Tree恢复二叉搜索树

    Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing ...

  10. [leetcode]29. Divide Two Integers两整数相除

      Given two integers dividend and divisor, divide two integers without using multiplication, divisio ...