JDK5新特性java
自動裝箱和拆箱程序員
泛型設計模式
加強for循環安全
靜態導入架構
可變參數加密
枚舉設計
枚舉概述對象
是指將變量的值一一列出來,變量的值只限於列舉出來的值的範圍內。舉例:一週只有7天,一年只有12個月等。接口
回想單例設計模式:單例類是一個類只有一個實例ip
那麼多例類就是一個類有多個實例,但不是無限個數的實例,而是有限個數的實例。這才能是枚舉類
java就提供了枚舉類供咱們使用。
格式是:只有枚舉項的枚舉類
public enum 枚舉類名 {
枚舉項1,枚舉項2,枚舉項3…;
}
注意事項
定義枚舉類要用關鍵字enum
全部枚舉類都是Enum的子類
枚舉類的第一行上必須是枚舉項,最後一個枚舉項後的分號是能夠省略的,可是若是枚舉類有其餘的東西,這個分號就不能省略。建議不要省略
枚舉類能夠有構造器,但必須是private的,它默認的也是private的。枚舉項的用法比較特殊:枚舉(「」);
枚舉類也能夠有抽象方法,可是枚舉項必須重寫該方法
枚舉在switch語句中的使用
枚舉類中的幾個常見方法
int compareTo(E o)
String name()
int ordinal()
String toString()
<T> T valueOf(Class<T> type,String name)
values()
此方法雖然在JDK文檔中查找不到,但每一個枚舉類都具備該方法,它遍歷枚舉類的全部枚舉值很是方便
JDK7新特性
二進制字面量
數字字面量能夠出現下劃線
switch 語句能夠用字符串
泛型簡化
異常的多個catch合併
try-with-resources 語句
二進制字面量
JDK7開始,終於能夠用二進制來表示整數(byte,short,int和long)。使用二進制字面量的好處是,可使代碼更容易被理解。語法很是簡單,只要在二進制數值前面加 0b或者0B
舉例:
int x = ob110110
數字字面量能夠出現下劃線
爲了加強對數值的閱讀性,如咱們常常把數據用逗號分隔同樣。JDK7提供了_對數據分隔。
舉例:
int x = 100_1000;
注意事項:
不能出如今進制標識和數值之間
不能出如今數值開頭和結尾
不能出如今小數點旁邊
try-with-resources 語句
格式:
try(必須是java.lang.AutoCloseable的子類對象){…}
好處:
資源自動釋放,不須要close()了
把須要關閉資源的部分都定義在這裏就ok了
主要是流體系的對象是這個接口的子類(看JDK7的API)
Java SE 8 有哪些主要特性?
? Lambda表達式,一種新的語言特性,可以使功能做爲方法參數或將代碼做爲數據;
? 顯著增長和完善Java語言特性,增添標準庫,包括默認方法,新的java.util.stream包及 Date-Time API;
? Compact Profiles包含 Java SE平臺預約義子集,使程序員無需部署在整個平臺,可運行在小型設備上;
? 安全性包括更新可Java加密體系架構;限制doPrivileged;SSL/TLS Server Name Indication (SNI) Extension以及加強密鑰庫;
? JavaFX更新文檔
? 新的JavaScript引擎Nashorn