美文网首页
Java各版本新特性总结

Java各版本新特性总结

作者: 木木点 | 来源:发表于2020-06-12 01:06 被阅读0次

    Java 8 新特性

    1. Lambda 表达式 − Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中)。

    2. 方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。

    3. 默认方法 − 默认方法就是一个在接口里面有了一个实现的方法。

    4. 新工具 − 新的编译工具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。

    5. Stream API −新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。

    6. Date Time API − 加强对日期与时间的处理。

    7. Optional 类 − Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。

    8. Nashorn, JavaScript 引擎 − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。

    Lambda 表达式

    Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。

    Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。

    使用 Lambda 表达式可以使代码变的更加简洁紧凑。

    package Test;
    
    public class Java8Tester {
        public static void main(String args[]) {
            Java8Tester tester = new Java8Tester();
    
            // 类型声明
            MathOperation addition = (int a, int b) -> a + b;
    
            // 不用类型声明
            MathOperation subtraction = (a, b) -> a - b;
    
            // 大括号中的返回语句
            MathOperation multiplication = (int a, int b) -> {
                return a * b;
            };
    
            // 没有大括号及返回语句
            MathOperation division = (int a, int b) -> a / b;
    
            System.out.println("10 + 5 = " + tester.operate(10, 5, addition));
            System.out.println("10 - 5 = " + tester.operate(10, 5, subtraction));
            System.out.println("10 x 5 = " + tester.operate(10, 5, multiplication));
            System.out.println("10 / 5 = " + tester.operate(10, 5, division));
    
            // 不用括号
            GreetingService greetService1 = message ->
                    System.out.println("Hello " + message);
    
            // 用括号
            GreetingService greetService2 = (message) ->
                    System.out.println("Hello " + message);
    
            greetService1.sayMessage("World");
            greetService2.sayMessage("You");
        }
    
        interface MathOperation {
            int operation(int a, int b);
        }
    
        interface GreetingService {
            void sayMessage(String message);
        }
    
        private int operate(int a, int b, MathOperation mathOperation) {
            return mathOperation.operation(a, b);
        }
    }
    

    输出结果

    10 + 5 = 15
    10 - 5 = 5
    10 x 5 = 50
    10 / 5 = 2
    Hello Runoob
    Hello Google
    

    -----------------待----------------

    相关文章

      网友评论

          本文标题:Java各版本新特性总结

          本文链接:https://www.haomeiwen.com/subject/lpuwtktx.html