详解Java8中的Lambda表达式
作者:呼噜葫芦
这篇文章主要介绍了Java8中的Lambda表达式的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
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()一起使用会更香哦!
以上就是详解Java8中的Lambda表达式的详细内容,更多关于Java8中的Lambda表达式的资料请关注脚本之家其它相关文章!
您可能感兴趣的文章:
- JAVA8 lambda表达式权威教程
- Java8新特性之Lambda表达式的使用
- Java8的Lambda表达式你真的会吗
- Java8新特性:Lambda表达式之方法引用详解
- java8 forEach结合Lambda表达式遍历 List操作
- Java8 Lambda表达式模板方法实现解析
- Java8 lambda表达式2种常用方法代码解析
- Java8 用Lambda表达式给List集合排序的实现
- Java8中Lambda表达式使用和Stream API详解
- Java8与Scala中的Lambda表达式深入讲解
- java8学习教程之lambda表达式的使用方法
- 简单易懂的java8新特性之lambda表达式知识总结