JDK7新特性
JDK7新特性
- 二進制字面量
- 在數字字面量使用下劃線
- Switch中引入String比較類型
- 泛型推導
- try-with-resources 資源的自動管理
二進制字面量
整數類型例如(byte,short,int,long)能夠用二進制來表示了。通過在數字前面加入0b或者0B來標示一個二進制的字面量
//一個8位'byte'值: byte aByte = (byte)0b00100001;//一個16位'short'值: short aShort = (short)0b1010000101000101;//一些32位'int'值: int anInt1 = 0b10100001010001011010000101000101; int anInt2 = 0b101; int anInt3 = 0B101; // B可以是大寫也可以是小寫.//一個64位的'long'值. 注意"L"結尾: long aLong = 0b1010000101000101101000010100010110100001010001011010000101000101L;參考:https://blog.csdn.net/heartroll/article/details/78455045
在數字字面量使用下劃線
這個功能可以用來對一個數字字面量根據位數分組,從而提高你代碼的可讀性。比如,如果你的代碼包含一些數字有很多的位數,你能夠用下劃線字符把位數分為三組,類似于你用一個像逗號或者一個空格作為分隔符。
下劃線只能出現在數字之間,下面的情形不能出現下劃線:
- 數字的開頭和結尾
- 在浮點數中與小數點相鄰
- F或者L后綴之前
- 在預期數字串的位置
參考:https://blog.csdn.net/heartroll/article/details/78455045
Switch中引入String比較類型
在JDK1.5之前,switch循環只支持byte、short、char、int四種數據類型.
JDK7以前在switch 只支持
- 基本數據類型:byte, short, char, int
- 包裝數據類型:Byte, Short, Character, Integer
- 枚舉類型:Enum
在JDK7 開始支持字符串類型:String
switch語句比較與每個case標簽關聯就好像使用string.equals方法表達的表達式的字符串對象;因此,在switch語句的字符串對象的比較是區分大小寫的。java編譯器生成更有效的字節碼從switch語句中使用字符串對象比鏈式if-then-else語句。
public String getTypeOfDayWithSwitchStatement(String dayOfWeekArg) {String typeOfDay;switch (dayOfWeekArg) {case "Monday":typeOfDay = "Start of work week";break;case "Tuesday":case "Wednesday":case "Thursday":typeOfDay = "Midweek";break;case "Friday":typeOfDay = "End of work week";break;case "Saturday":case "Sunday":typeOfDay = "Weekend";break;default:throw new IllegalArgumentException("Invalid day of the week: " + dayOfWeekArg);}return typeOfDay; }參考:https://blog.csdn.net/heartroll/article/details/78455045
泛型推導
Map<String, List<String>> myMap = new HashMap<String, List<String>>();//JDK7可以只在申明指定泛型 Map<String, List<String>> myMap = new HashMap<>();參考:https://blog.csdn.net/heartroll/article/details/78455045
try-with-resources 資源的自動管理
try-with-resources語句是一個聲明一個或多個資源的try語句。一個資源作為一個對象,必須在程序結束之后關閉。try-with-resources語句確保在語句的最后每個資源都被關閉,任何實現了java.lang.AutoCloseable和java.io.Closeable的對象都可以使用try-with-resource來實現異常處理和關閉資源。
在JDK1.7之前如果rd.readLine()與rd.close()都拋出異常則只會拋出finally塊中的異常,不會拋出rd.readLine()中的異常,這樣經常會導致得到的異常信息不是調用程序想要得到的。
在JDK1.7及以后采用了try-with-resource機制,如果在try-with-resource聲明中拋出異常(如文件無法打開或無法關閉)的同時rd.readLine()也拋出異常,則只會拋出rd.readLine()的異常。
try塊中能拋出兩種異常。在java SE7以前的版本中,在方法聲明中throws 只能寫Exception,因為catch里的類型是 Exception。 但是在java SE7及以后的版本中,可以在throws后面寫 FirstException和SecondException——編譯器能判斷出throw e語句拋出的異常e 一定來自try塊,并且try塊只能拋出FirstException和SecondException。
參考:https://blog.csdn.net/heartroll/article/details/78455045
總結
- 上一篇: HP Smart Tank 518 在
- 下一篇: 推荐几个浪尖收藏的大数据学习平台