Java8 有哪些新特性

1、Lambda 表达式和函数接口

Lambda表达式的优点:(1)简洁(2)使用外部变量时,外部变量不需要声明为final

缺点:(1)由于使用了类型推断,可读性变差 (2)不容易调试

2、接口默认方法和静态方法

public class Hello {

    @FunctionalInterface
    interface MyInterface {
        void fun1();

        default void fun2() {
            System.out.println("default method");
        }

        static void fun3() {
            System.out.println("default static method");
        }
    }

    static void callFun(MyInterface fun) {
        fun.fun1();
        fun.fun2();
        MyInterface.fun3();
    }

    public static void main(String[] args) {
        callFun(() -> {
            System.out.println("fun1");
        });
    }
}

3、方法引用


        Listlist=new ArrayList<>();
        list.add(1);
        list.add(2);
        list.forEach(System.out::println);


4、Optional


        Optionaldata=Optional.of(1);
        if(data.isPresent()){
            System.out.println(data.get());
        }


5、Streams


        Listlist = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.stream().map(x -> x * 2).filter(x -> x < 5).forEach(System.out::println);


6、使用Metaspace 代替 持久代(PermGen space)

使用-XX:MetaSpaceSize和-XX:MaxMetaspaceSize代替原来的-XX:PermSize和-XX:MaxPermSize


更多参考:

【译】Java 8的新特性—终极版


更多精选文章
标签: myinterface、println、fun1、list、xx
一个创业中的苦逼程序员
笔试题


刷题


简历模板


AI算法


大数据


内推


推荐阅读:
阿里巴巴笔试面试大全
腾讯笔试面试大全
百度笔试面试大全
今日头条笔试面试大全
网易笔试面试大全
Google笔试面试大全
更多笔试面试大全
隐藏