java11新特性

java 11 新增了很多特性,我们针对较为突出的特性进行说明。

直接运行

在以前的版本中,我们在命令提示下,需要先编译,生成class文件之后再运行,例如:

javac HelloWorld.java
java HelloWorld

在java 11中,我们可以这样直接运行

java HelloWorld.java

String新增方法

strip方法,可以去除首尾空格,与之前的trim的区别是还可以去除unicode编码的空白字符,例如:

char c = '\u2000';//Unicdoe空白字符
String str = c + "abc" + c;
System.out.println(str.strip());
System.out.println(str.trim());

System.out.println(str.stripLeading());//去除前面的空格
System.out.println(str.stripTrailing());//去除后面的空格

isBlank方法,判断字符串长度是否为0,或者是否是空格,制表符等其他空白字符

String str = " ";
System.out.println(str.isBlank());

repeat方法,字符串重复的次数

String str = "monkey";
System.out.println(str.repeat(4));

lambda表达式中的变量类型推断

jdk11中允许在lambda表达式的参数中使用var修饰

函数式接口:

    @FunctionalInterface
    public interface MyInterface {
        void m1(String a, int b);
    }

测试类:

  //支持lambda表达式参数中使用var
   MyInterface mi = (var a,var b)->{
       System.out.println(a);
       System.out.println(b);
   };

   mi.m1("monkey",1024);