JDK7与JDK8的新特性

时间:2022-01-27 23:26:18

看完了官方文档,总结一下新特性,防止面试的时候被问到,附官方说明地址 JDK新特性官方文档

JDK7(主要的)

1 二进制可以用来表示整数类型,用0b(0B也行,不区分大小写)开头

比如 int a=0b00000000000000000000000000000111 ;等价于以前的int a=7;

2 switch支持String类型

比如 

String[] ss={"ni","wo","ta"}

for(String temp:ss)

switch(temp) {

case "ni":.....

case "wo"......

case:"ta"......

}

 3可以将实现了AutoClosable接口的资源放到try的小括号里(注意不是大括号)

  比如

try(.....实现了AutoClosable接口的资源) {

...............

..............

}

4一个catch可以catch多个异常(因为catch异常类型是final的,生成的2进制码会比多个catch的小)

比如

try() {

............

} catcch(ClassNotFoundException | NumberFormatException e) {

............

} finally {

............

}

5数字类型可以用下划线表示了

比如 int a=121_333______45 等价于以前的 int a=1233345

JDK8(主要的)

1 lambda表达式(支持泛型以来最大的新增特性)

lambda表达式的形式

(parameters) ->expression

比如 x ->2*x //接收一个参数,返回其2倍的值

(parameters) ->{statements;}

比如

new Thread(()->system.out.printlln("hello world")).start();

本来应该是 new Thread(new Runnable() {

@override

public void run() {

system.out.println("hello world");

}

})