目录
1、速度更快 2、代码更少 3、强大的Stream APL 4、便于并行 5、最大化减少空指针异常
6、Nashorn引擎,允许在JVM上运行JS应用。
1、并行流就是把一个内容分成多个数据块,并用不同的线程分别处理每个数据块的流。
并行的流可以很大程度上提高程序的执行效率。
2、Stream APL可以声明性地通过parallel()与sequential()在并行流与顺序流之间的切换。
Lamdba是一个匿名函数,也就是一段可以传递的代码。可以写出更简洁、更灵活的代码,使Java的语言表达能力更强,lambda的本质是作为函数式接口的实例。
示例代码:
- public class LambdaTest {
- @Test
- public void test1(){
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- System.out.println("你是老六");
- }
- };
- runnable.run();
- System.out.println("----使用lambda操作----");
- Runnable runnable1 = ()-> System.out.println("老六是你");
- runnable1.run();
- }
- @Test
- public void test2() {
- Comparator<Integer> comparator = new Comparator<Integer>() {
- @Override
- public int compare(Integer o1, Integer o2) {
- return Integer.compare(o1,o2);
- }
- };
- int compare = comparator.compare(11, 12);
- System.out.println(compare);
- System.out.println("----使用lambda操作----");
- Comparator<Integer> comparator1 = ((o1, o2) -> Integer.compare(o1,o2));
- int compare1 = comparator1.compare(56, 34);
- System.out.println("compare1 = " + compare1);
- System.out.println("----使用lambda操作2----");
- Comparator<Integer> comparator2 = Integer::compare;
- int compare2 = comparator2.compare(57, 45);
- System.out.println("compare2 = " + compare2);
- }
- }
语法介绍:
- public class LambdaTest1 {
- @Test
- public void Test01(){
- /**
- * -> :lambda操作符,又叫箭头操作符
- * ->:左边是lambda的形参列表,即接口中的抽象方法的形参列表
- * -> 右边是lambda体,即重写的抽象方法的方法体
- */
- Runnable runnable = () -> System.out.println("5G");
- runnable.run();
- }
- }
lambda不同的语法
- public class LambdaTest1 {
- @Test
- public void Test01(){
- //第一种:无参,无返回值
- Runnable runnable = () -> System.out.println("5G");
- runnable.run();
- //第二种:需要一个参数,没有返回值
- Consumer<String> consumer = (String str)-> System.out.println(str);
- consumer.accept("老六来了");
- //第三种:数据类型省略,由编译器推断自己推断
- Consumer<String> consumer1 = (str)-> System.out.println(str);
- consumer.accept("来了个老六");
- //第四种:当只有一个参数时,可以省略小括号
- Consumer<String> consumer2 = str-> System.out.println(str);
- consumer.accept("老六是谁呢?");
- //第五种:当只有两个或两个以上参数时,不可以省略小括号,多条执行语句,有返回值
- Comparator<Integer> comparator = (a1,a2)->{
- System.out.println(a1);
- System.out.println(a2);
- return a1.compareTo(a2);
- };
- int compare = comparator.compare(34, 45);
- System.out.println("compare = " + compare);
- //第六种:当只有一条语句时,return与大括号可以省略
- Comparator<Integer> comparator1 = (a1,a2)-> a1.compareTo(a2);
- int compare1 = comparator1.compare(56, 90);
- System.out.println("compare1 = " + compare1);
- }
- }