zoukankan      html  css  js  c++  java
  • 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还有很多,学习中见到再学习。

      

      

  • 相关阅读:
    SSR 第二篇,搭建Vue SSR程序
    SSR 第一篇,搭建简单的SSR程序
    数组的所有方法整理学习
    CustomEvent 使用
    VUE CSS module
    eslint Expected linebreaks to be 'LF' but found 'CRLF'
    利用Object.freeze() 提升性能
    vue 项目开启gzip 压缩和性能优化
    [转]Ext Grid控件的配置与方法
    ExtJS renderer(转)
  • 原文地址:https://www.cnblogs.com/msi-chen/p/10434369.html
Copyright © 2011-2022 走看看