Java8十大新特性

    xiaoxiao2021-03-25  89

        今天做题目时,出现了这么一道题,说下面说法错误的是:

    A 抽象类可以有构造方法,接口中不能有构造方法

    B 抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法

    C 一个类可以实现多个接口,但只能继承一个抽象类

    D 接口中可以有普通成员变量,抽象类中没有普通成员变量

        答案是BD,刚开始一直觉得B是对的,看了一下解析,发现Java八有十大新特性,其中有一点就是java8中接口可以有default方法。Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法

        大家可以关注一下。还有就是对于集合的排序,下面有一段代码:

    List<String> names =Arrays.asList("peter", "anna", "mike","xenia");

               Collections.sort(names, new Comparator<String>() {

                   @Override

                   public intcompare(String a, String b) {

                       returnb.compareTo(a);

                   }

               });

        这个是一般的将集合中的字符串Collections.sort默认是按照字母从小到大的排序,上面重写了Comparator接口的compare方法。但是Java8有更加简洁的书写形式:lambda表达式(匿名函数)

    一、Collections.sort(names, (String a, String b) -> {

        return b.compareTo(a);

    });

    二、Collections.sort(names, (String a, String b) ->b.compareTo(a));

    三、Collections.sort(names, (a, b) -> b.compareTo(a));

        上面的三种写法都是对的,一个比一个简洁。至于还有其他的特性,大家可以搜集资料,也可以看下面的参考地址。参考地址:http://www.jb51.net/article/48304.htm

    转载请注明原文地址: https://ju.6miu.com/read-11839.html

    最新回复(0)