语法糖(Syntactic sugar)是由英国计算机科学家彼得·兰丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。

ForEach

for(type element: array){
    System.out.println(element);
}

批注 2019-10-20 163312

枚举

public enum Size{
    SMALL,MEDIUM,LARGE;
}
  • Enum的子类
  • 有多少值,则有多少实例对象
  • 无法直接创建
  • 可以添加属性、构造函数、方法
  • 构造函数只能为私有

不定项参数

public void method(String a,String...b){ }
  • 固定参数重载优先级比不定项高

静态导入

import static org.junit.Assert.*;
  • 导入一个类的静态方法与静态变量

自动装拆箱

Integer a = 1;
  • 该功能由编译器提供
  • 基础类型与封装类型运算时,会触发拆装箱

多异常并列

try{
    //...
}catch(Exception1 | Exception2 e){
    //...
}
  • 不能有直接或间接的继承关系

数值新特性

        int a = 0b11100111; // 可直接使用二进制
        int b = 9999_99999; // 可使用下划线分割

接口方法

    default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {

        return true;
    }

批注 2019-10-20 194253

接口静态方法

public interface Runnable {
    static void run(){
        System.out.println("!111");
    }
}
  • 只能通过接口名来调用

接口私有方法

public interface Runnable {
    static void run(){
        say();
    }

    private static void say(){
        System.out.println("say");
    }

}

try-with-resource

try(FileOutputStream fos = new FileOutputStream("")){ //JDK7

} catch (IOException e) {
    e.printStackTrace();
}
        FileOutputStream fos = new FileOutputStream(""); // JDK9
        try(fos){

        } catch (IOException e) {
            e.printStackTrace();
        }
  • 资源类必须实现AutoCloseable接口

var

var a = 1;
  • 由编译器进行类型推断
        var obj = new Object(){
            public void print(){
                System.out.println("print");
            }
        };

        obj.print();

批注 2019-10-22 204413

switch表达式

        int ret= switch (a){
            case 1-> 100;
            case 2 -> 200;
            default -> -1;
        };

results matching " "

No results matching " "

results matching " "

No results matching " "