Java8十大新特性

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

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值