Java8十大新特性

来源:互联网 发布:电脑屏幕调色软件 编辑:程序博客网 时间:2024/04/30 01:56

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

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


0 0
原创粉丝点击