# Java教程 - Java8新特性

Java 8 (又称为jdk 1.8) 是Java 语言开发的一个主要版本,是 Java 5 以来最具革命性的版本。Java 8为Java语言、编译器、类库、开发工具与JVM带来了大量新特性。

下面介绍一下 Java8 常用的新特性。

# 1.1 接口的默认方法与静态方法

以前的版本定义接口是不能有实现机制的,现在可以使用 default 关键字声明默认方法,然后子类可以重写,也可以直接使用了。另外接口中也可以声明静态方法并提供方法的实现。以后的工具类就可以参考接口来设计,例如大量的方法被添加到 java.util.Collection 接口中去,例如 stream(),parallelStream(),forEach(),removeIf()等。

声明默认方法和静态方法:

interface FirstInterface {
    // 方法和常量,默认就是public的
    // 不写final static,默认就是常量
    String key = "abc";

    /**
     * 定义默认方法
     */
    default void commomMethod() {
        System.out.println(key);
    }

    /**
     * 定义静态方法
     */
    static void firstMethod(int value) {
        System.out.println(key + value);
    }
}

//实现
public class InterfaceTest implements FirstInterface {
    public static void main(String[] args) {
        //调用静态方法
        FirstInterface.firstMethod(123);

        InterfaceTest test = new InterfaceTest();
        test.commomMethod();

    }

    /**
     * 重写默认方法
     */
    @Override
    public void commomMethod() {
        System.out.println("你好");
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

但是需要注意不能用默认方法来重写 equals()hashCode()toString(),接口不能提供对 Object 类的任何方法的默认实现。

# 1.2 Lambda表达式

在讲 Lambda 表达式之前需要先说函数式接口。

内容未完......