目录
一、Java11新特性
1、直接运行
2、String新增方法
3、Lamda表达式中局部类型推断
二、Java12新特性
1、升级的switch语句
三、Java13新特性
1、带有返回值的switch
2、文本块的变化
HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!!");
}
}
在以前的版本中,我们在命令提示下,需要先编译,生成class文件之后再运行
javac HelloWorld.java
java HelloWorld
在java11中,可以如下运行
java HelloWorld.java
public class StringTest {
public static void main(String[] args) {
char c = '\u2000';//Unicode空白字符
String str = c + "abc" + c;
System.out.println(str);
System.out.println(str.trim());//去除空白字符不好用
System.out.println(str.strip());//去除空白字符
System.out.println(str.stripLeading());//去除前面的空白字符
System.out.println(str.stripTrailing());//去除后面的空白字符
String name=" ";
System.out.println(name.isBlank());//是否为空
String app="app";
System.out.println(app.repeat(3));//重复输出几次字符串
}
}
运行结果
abc
abc
abc
abc
abc
true
appappapp
package com.lwz.java11;
@FunctionalInterface
public interface MyInterface {
void m1(String a,int b);
}
测试
package com.lwz.java11;
public class MyTest {
public static void main(String[] args) {
MyInterface m1=(String a,int b)->{};
//Java11
MyInterface m2=(var a,var b)->{};
}
}
在jdk12之前的switch语句中,如果没有写break,则会出现case穿透现象。
例:按照月份输出季节
public class Switch01 {
public static void main(String[] args) {
int month=3;
switch(month){
case 3:
case 4:
case 5:
System.out.println("spring");
break;
case 6:
case 7:
case 8:
System.out.println("summer");
break;
case 9:
case 10:
case 11:
System.out.println("autumn");
break;
case 12:
case 1:
case 2:
System.out.println("winter");
break;
default:
System.out.println("month is error");
break;
}
}
}
java12
public class Switch02 {
public static void main(String[] args) {
int month = 3;
switch (month) {
case 3, 4, 5 -> System.out.println("spring");
case 6, 7, 8 -> System.out.println("summer");
case 9, 10, 11 -> System.out.println("autumn");
case 12, 1, 2 -> System.out.println("winter");
default -> System.out.println("month is error");
}
}
}
java12这个是预览功能,如果需要编译和运行的话需要使用下面命令,预览功能在2个版本之后会成为正式版,即如果你使用的是jdk14以上的版本,正式的编译和运行即可。否则需要使用预览功能来编译和运行。
编译:
javac --enable-preview -source 12 Test.java
运行:
java --enable-preview Test
此特性也是预览版,对于jdk15之后的版本可以直接编译运行,否则需要使用命令执行该预览功能
//带有返回值的switch
public class Switch03 {
public static void main(String[] args) {
int month = 3;
String result = switch (month) {
case 3, 4, 5 -> "spring";
case 6, 7, 8 -> "summer";
case 9, 10, 11 -> "autumn";
case 12, 1, 2 -> "winter";
default -> "month is error";
};
System.out.println(result);
}
}
public class Text {
public static void main(String[] args) {
String s1="床前明月光\n疑是地上霜\n举头望明月\n低头思故乡";
System.out.println(s1);
System.out.println("========");
String s2= """
床前明月光
疑是地上霜
举头望明月
低头思故乡
""";
System.out.println(s2);//文本块写法,可读性更强,效果和加换行一样
}
}
Java10新特性
一个程序员最重要的能力是:写出高质量的代码!!
有道无术,术尚可求也,有术无道,止于术。
无论你是年轻还是年长,所有程序员都需要记住:时刻努力学习新技术,否则就会被时代抛弃