本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
Java8中的Lambda表达式
奔跑的男人 · 285浏览 · 发布于2020-05-27 +关注

Lambda是什么

Lambda表达式,也可称为闭包,是java8的新特性,作用是取代大部分内部类,优化java代码结构,让代码变得更加简洁紧凑。

Lambda的基本语法

 (expression)->expression 或 (expression)->{statements;} 

Lambda最重要特点

用()->{}代码块替代匿名内部类

//(param)->expression;//(param)->statment;//(param)->{statments};//类型声明

MathOperation addition = (int a, int b) -> a + b;

//不用类型声明

MathOperation subtraction = (a, b) -> a - b;

例如:用lambda表达式实现Runable接口

//java8之前
new Thread(new Runable() {
       @Override
       public void run() {
            System.out.println("hello");
       }
}).start();
//java8之后
new Thread( ()->System.out.println("hello") ).start();

代替comparator接口内部类

//java8之前
Comparator<Person> comparator = new Comparator(){
    public int compare(Person p1, Person p2) {
         if (p1.getAge() > p2.getAge())
            return -1;
         .....
    }
}
//java8之后
Comparator<Person> comparator = (Person p1, Person p2) -> {
    if (p1.getAge() > p2.getAge())
         return -1;
    .....
}

是不是代码变得清爽了许多

Lambda表达式和匿名类的对比

1、this关键字:匿名类的this关键字指向匿名类,而Lambda表达式的关键字指向包围Lambda表达式的类;

2、编译方式:Java编译器将Lambda表达式编译成类的私有方法,使用了java7的invokedynamic字节码指令来动态绑定这个方法;

 

最后说一句,Lambda表达式和Java8的新特性Stream()一起使用会更香哦!

相关推荐

PHP实现部分字符隐藏

沙雕mars · 1327浏览 · 2019-04-28 09:47:56
Java中ArrayList和LinkedList区别

kenrry1992 · 911浏览 · 2019-05-08 21:14:54
Tomcat 下载及安装配置

manongba · 976浏览 · 2019-05-13 21:03:56
JAVA变量介绍

manongba · 964浏览 · 2019-05-13 21:05:52
什么是SpringBoot

iamitnan · 1091浏览 · 2019-05-14 22:20:36
加载中

0评论

评论
分类专栏
小鸟云服务器
扫码进入手机网页