java 之 jdk5,jdk7,jdk8新特性

Jdk5 :注解、泛型、for-eanch、并发包出现
Jdk7 :switch中使用String
Jdk8 :推出了Lambda、函数编程等。

这里总结java8种新特性

接口变化
接口可以写普通方法 只需用 default 或者 static(不能被重写) 关键字修饰即可
函数接口的出现
什么是函数接口?
在接口中定义唯一一个抽象方法 或者 用 @Functionalinterface注解修饰的接口统称为函数接口 两者实现并不冲突 注解只是强制约束,只能存在一个抽象方法 唯一抽象方法可以存在static 和默认方法
例如java中已有的函数接口有
多线程中:Runnable 也是一个函数接口 只有一个run抽象方法
Java排序类 Comparator接口

为什么有函数接口的出现呢?
主要是为了Lambda的使用做铺垫
下面来代码简单的演示
新建User接口

@FunctionalInterface
public interface User {
    void add(String name);
}

如果不用Lambda表达式方式执行add方法

 User u= new User(){
 			//重新方法
            @Override
            public void add(String name) {
                System.out.println(name);
            }
        };
       u.add("lhl");

这里用Lambda表达式方式执行add方法

   //因为接口里面只有一个唯一抽象方法 所以可以使用Lambda表达式
   //就相当于默实重写里面的唯一抽象方法
   		//方式1
        User u2= (name) -> {
            System.out.println(name);
        };
        //方式2 可以这样写
        //User u2= (name) -> System.out.println(name);
        
        //方式3 使用方法引用方式  默认打印一个参数
        //方法引用可以看作是调用特定方法的Lambda的一种快捷写法
        //User u2= (System.out::println);

        u2.add("lhl");

总结
Lambda表达式的主要作用是简化传统的匿名内部内的写法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值