1.二進(jìn)制常量(Binary Literals)
在Java SE 7中,整型(byte, short, int和long)也可以使用二進(jìn)制計(jì)數(shù)方式來(lái)表示。為了指定二進(jìn)制常量,需要為數(shù)字增加一個(gè)0b或0B的前綴。
2.應(yīng)用于數(shù)值常量的下劃線(Underscores in Numeric Literals)
帶下劃線的任意數(shù)字,可以出現(xiàn)在數(shù)值常量的任意數(shù)字之間。利用這個(gè)特性,你可以將數(shù)值劃分成不同的數(shù)字組,這樣可以增加代碼的可讀性。
3.switch語(yǔ)句中支持String值 (Strings in Switch Statements)
在switch語(yǔ)句的表達(dá)式中可以使用String類型。
4.范型對(duì)象創(chuàng)建時(shí)支持類型推導(dǎo)(Type Inference for Generic Instance Creation)
由于編譯器可以根據(jù)上下文推導(dǎo)出類型參數(shù),所以可以使用空類型參數(shù)(<>)替換在調(diào)用范型類型構(gòu)造函數(shù)時(shí)所要求的類型參數(shù)。
5.改進(jìn)了在支持可變參數(shù)的方法中使用非具體(Non-Refiable,如通過(guò)類型參數(shù)指定)的形參時(shí),出現(xiàn)的編譯器警告和錯(cuò)誤(Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods)
使用非具體的形式參數(shù)聲明可變參數(shù)的方法或構(gòu)造函數(shù)時(shí),Java SE 7編譯器會(huì)在聲明的地上給出一個(gè)警告信息。Java SE 7引入了編譯器選項(xiàng)-Xlint:varargs和注解@SafeVarargs和@SuppressWarnings({"unchecked", "varargs"})來(lái)禁止警告。
6.增加try-with-resources語(yǔ)句(The try-with-resources Statement)
try-with-resources語(yǔ)句是一個(gè)聲明了一個(gè)或多個(gè)資源的try語(yǔ)句。資源是指在程序使用完成后必須關(guān)閉的一個(gè)對(duì)象。try-with-resources語(yǔ)句確保每個(gè)資源在該語(yǔ)句結(jié)束后被關(guān)閉。任何實(shí)現(xiàn)java.io.Closeable接口和新java.lang.AutoCloseable接口的對(duì)象,可以被看作一種資源。java.io.Inputstream,OutputStream,Reader,Writer,java.sql.Connection,Statement,ResultSet類被重新實(shí)現(xiàn),并實(shí)現(xiàn)了AutoCloseable接口。以上提到這些類,也可以被用作是try-with-resources語(yǔ)句中的一種資源。
7.支持捕獲多個(gè)異常,使用改進(jìn)的類型檢測(cè)重新拋出異常(Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking)
一個(gè)單catch塊可以處理多種類型的異常。此外,編譯器相比之前的實(shí)現(xiàn)版本,對(duì)重新拋出的異常分析的更準(zhǔn)確。你使你可以在一個(gè)方法聲明的throws語(yǔ)句中指定多個(gè)特定異常類型。