1 二进制变量的表示,支持将整数类型用二进制来表示,用0b开头

byte aByte = (byte) 0b00100001;

2 数字类型的下划线表示 更友好的表示方式,不过要注意下划线添加的一些标准。 不能开头或结尾

3 Switch语句支持String类型。

4 Try-with-resource语句: 多个try

try (

java.util.zip.ZipFile zf =

new java.util.zip.ZipFile(zipFileName);

java.io.BufferedWriter writer =

java.nio.file.Files.newBufferedWriter(outputFilePath, charset)

) {

// Enumerate each entry

for (java.util.Enumeration entries =

zf.entries(); entries.hasMoreElements();) {

// Get the entry name and write it to the output file

String newLine = System.getProperty("line.separator");

String zipEntryName =

((java.util.zip.ZipEntry)entries.nextElement()).getName() +

newLine;

writer.write(zipEntryName, 0, zipEntryName.length());

}

}

BufferedWriter和ZipFile对象的close方法都会自动按声明的相反顺序调用。


try (Statement stmt = con.createStatement()) {

5 多个catch

catch(IOException | SQLException | Exception ex){



jdk8

1 接口的默认和静态方法:

Java 8允许我们给接口添加一个非抽象的方法实现

public interface JDK8Interface {


// static修饰符定义静态方法

static void staticMethod() {

System.out.println("接口中的静态方法");

}

2 Lambda 表达式:(例如: (x, y) -> { return x + y; } ;λ

public int add(int x, int y) {

return x + y;

}

变为 (int x, int y) -> x + y;


c -> { return c.size(); }


3 方法与构造函数引用::

通过Person::new创建一个指向Person构造函数的引用。 请注意构造方法没有参数

静态方法:User::collide

类实例User::repair


4 支持多重注解

5 日期函数和 Base64

提供了新的java.time包,可以用来替代

java.util.Date和java.util.Calendar。一般会用到Clock、LocaleDate、LocalTime、LocaleDateTime、ZonedDateTime、


6 CurrentHashMap做了升级--重要