zoukankan      html  css  js  c++  java
  • Java8的新特性

        Java 8主要新特性包括如下几点:
    一、接口的默认方法和静态方法
    Java 8版之前,接口只有抽象方法,而在Java 8,为接口新增了两种类型的方法。

    第一种是默认方法:在Java 8中,可以通过使用default关键字来添加默认的方法实现。 接口的实现类可以直接使用这些默认的方法,同时还可以重写默认的方法,这不是强制性的重写。

    package demo.ch;
     
    public interface Java8InterfaceDemo {
        abstract void add();
        default void display(){
            System.out.println("default method of interface");
        }
    }

    Java 8接口引入的第二种方法是静态方法。 这一点与类中的静态方法相似,可以在接口中使用static关键字定义静态方法。如果我们要调用接口定义的静态方法,只需使用接口名就可以访问这些静态方法。比如:

    package demo.ch;
     
    public interface Java8InterfaceDemo {
        abstract void add();
        default void display(){
            System.out.println("default method of interface");
        }
        public static void show(){
            System.out.println("static method of interface");
        }
    }
    二、Lambda表达式
     Lambda表达式其实并不陌生,他的前生就是匿名函数
    lambda表达式可以这样定义(不精确,自己的理解):一段带有输入参数的可执行语句块
    Lambda语法详解:

    从lambda表达式的一般语法可以看出来,还是挺符合上面给出的非精确版本的定义–“一段带有输入参数的可执行语句块”。

    上面的lambda表达式语法可以认为是最全的版本,写起来还是稍稍有些繁琐。别着急,下面陆续介绍一下lambda表达式的各种简化版。

    1. 参数类型省略–绝大多数情况,编译器都可以从上下文环境中推断出lambda表达式的参数类型。这样lambda表达式就变成了:

    2. 当lambda表达式的参数个数只有一个,可以省略小括号。lambda表达式简写为:

    3. 当lambda表达式只包含一条语句时,可以省略大括号、return和语句结尾的分号。lambda表达式简化为:

    三、java.util.Optional类

    Java 8在java.util包中新增了Optional类,Optional类是一个可以包含或不可以包含非空值的容器对象。

    每一个Java项目,最主要的重复语句就是检查空指针异常NullPointerException。我们使用任何对象,都需要检查此对象是否为空,如果对象不为空我们才能执行处理语句。 Optional类像是一个容器,它保存一个类型为的值或是null值。通过使用Optional类的isPresent()方法,我们可以检查指定的对象是否为空

     

    四、日期时间API

    Java 8使用了JSR 310规范,新增了java.time包。 在Java 8版之前,如果我们想格式化日期,必须使用SimpleDateFormat类,用它格式化输入的日期类。而Java 8引入了以下的新日期时间类:

    LocalTime,LocalDate ,LocalDateTime ,OffsetDate ,OffsetTime ,OffsetDateTime

    五、并行数组排序

    在Java 7中已经有了Arrays.sort()方法可对对象进行排序,

    而在Java 8中,引入了新的并行排序,它比前者的排序速度更快,且遵循了Java 7引入的Fork/Join框架,可以把排序任务分配给线程池中可用的多个线程。 Java 8在java.util.Arrays类中新增了并行排序功能,能够更充分地利用多线程机制。

    JDK各版本引入的新特性可以参见:http://www.cnblogs.com/langtianya/p/3757993.html

                                                             http://tech.meituan.com/java-hashmap.html

  • 相关阅读:
    P3833 [SHOI2012]魔法树 (树链剖分模板题)
    2019 Multi-University Training Contest 4 1008K-th Closest Distance(二分+主席树)
    bzoj3631: [JLOI2014]松鼠的新家(树上差分)
    bzoj4326: NOIP2015 运输计划(二分+LCA+树上差分)
    目录
    希望是一个全新的开始
    模板
    模板
    SCUT
    模板
  • 原文地址:https://www.cnblogs.com/moonandstar08/p/5001928.html
Copyright © 2011-2022 走看看