1 enum方法:爲字段發法穿件一組有效值java
packge app12; public enum CoustomType{ INDIVIDUAL, ORGANIZATION }
package app2;/*能夠像使用一個靜態類同樣使用enum常量*/ public class Coustomer{ public Sring customerName; public CustomerType customerName; public string addresss; }
在保證變量被賦給一個有效值的方面,enum比靜態final要好。數據庫
Enum(枚舉):編程
public enum Color {
RED(1),
BLUE(1),
GREEN(1),
BLACK(1);
private int a ;
private Color(int a){this.a=a}
}數組
一、用途:用於表示一組相同類型的常量安全
二、與普通 public static final 常量比較數據結構
public static final RED=1;app
public static final BLUE=2;框架
public static final BLACK=3;函數
相比上面的常量,枚舉就有更加直觀的功能描述學習
通常的switch是不能用string進行比較的,可是有時候咱們的參數又是string類型的,由於switch能夠支持普通類型和枚舉enum型的參數
因此咱們能夠用string的參數來創建一個enum類進行判斷。
public enum A {
B("DAD"),
C("DADA"),
D("DAD"),
E("A");
private String a ;
private Color(string a){this.a=a}
}
switch(Transformation(「dada」)){
case B:
break;
case C:
break;
}
transformation方法:
public A Transformation(string value){
for(A a:EnumSet.allof(A.class)){
if(a.toString.equals(value)){
return a;
}
return null;
}
}
Final:
一、final類
做用:類不能夠被繼承,在設計類時候,若是這個類不須要有子類,類的實現細節不容許改變,而且確信這個類不會載被擴展,那麼就設計爲final類。
二、final方法
做用:
一、把方法鎖定,防止任何繼承類修改它的意義和實現
二、高效。編譯器在遇到調用final方法時候會轉入內嵌機制,大大提升執行效率
三、若是一個類不容許其子類覆蓋某個方法,則能夠把這個方法聲明爲final方法
三、final變量
用final修飾的成員變量表示常量,值一旦給定就沒法改變!
Static:
一、static變量:
static修飾的成員變量和成員方法獨立於該類的任何對象,它不依賴類特定的實例,被類的全部實例共享。只要這個類被加載,Java虛擬機就能根據類名在運行時數據區的方法區內定找到他們,所以,static對象能夠在它的任何對象建立以前訪問,無需引用任何對象。
二、static代碼塊:
static修飾的代碼塊表示靜態代碼塊,當Java虛擬機(JVM)加載類時,就會執行該代碼塊
三、static方法:
靜態方法中不能用this和super關鍵字(靜態方法是屬於類的,靜態方法加載時,對象還不必定存在,this和super表明是分別是對象的引用和對象父類的引用),static方法獨立於任何實例,所以static方法必須被實現,而不能是抽象的abstract。
2 定義一個enum類時,enum具備以下屬性
1 instant類:instant對象表示時間線上的一個時間點。引用的時間點是一個標準的java新紀元
2 LocalDate類:建模了沒有時間部分的日期。getDayOfMonth、getMonth等方法用於獲取一個LocalDate、他們不接受任何參數並返回一個int類型或者一個常量。
最好使用getMonth和getYear等方法獲取LocalDate的一部分,而不是get由於並非全部常量都支持。
3 Period類:基於日期的一個時間量。一個Period是不可變的。
4 LocalDateTime:建模了一個沒有時區的日期時間。
建立一個LcoalDateTime表示日期
LcoalDateTime ednOfYear=LcoalDateTime.of(2015,12,31,8,0)
5 時區數據庫下載網址:http://www.iana.org/time-zones
6 ZoneDateTime類:表示又時區的日期時間,是不可變的,按照秒精度儲存的。now的無參數覆蓋形式。of也有幾種覆蓋形式,都須要傳入一個時區標識符。
7 Duration類:基於時間的時間段,與Period區別是它能夠精確到納秒
8 若是有了一個Date對象,能夠用SetTime方法來構造一個Calendar對象。
9 在使用DateFormat解析和格式化的時候,要注意寬鬆性,即指在解析時是否執行嚴格的規則。ps:jan 32 2016
1 集和框架提供了一種方法存儲、訪問、操做其餘元素。
2 Collection接口是處理對象集合的根接口,其中定義了不少對元素進行操做的方法,AbstractCollection是提供Collection部分實現的抽象類。
3 List接口擴展自Collection,它能夠定義一個容許重複的有序集合,從List接口中的方法來看,List接口主要是增長了面向位置的操做,容許在指定位置上操做元素
4 它是用數組存儲元素的,這個數組能夠動態建立,若是元素個數超過了數組的容量,那麼就建立一個更大的新數組,並將當前數組中的全部元素都複製到新數組中。
5 HashSet是一個用於實現Set接口的具體類,可使用它的無參構造方法來建立空的散列集,也能夠由一個現有的集合建立散列集。
6 Collection 接口的iterator()方法返回一個 Iterator。Iterator接口方法能以迭代方式逐個訪問集合中各個元素,並安全的從Collection 中除去適當的元素。
7 Set不容許有重複的內容
8 隊列是一種先進先出的數據結構,元素在隊列末尾添加,在隊列頭部刪除。Queue接口擴展自Collection,並提供插入、提取、檢驗等操做。
9 方法offer表示向隊列添加一個元素,poll()與remove()方法都是移除隊列頭部的元素,二者的區別在於若是隊列爲空,那麼poll()返回的是null,而remove()會拋出一個異常。方法element()與peek()主要是獲取頭部元素,不刪除。
10 Map,圖,是一種存儲鍵值對映射的容器類,在Map中鍵能夠是任意類型的對象,但不能有重複的鍵,每一個鍵都對應一個值,真正存儲在圖中的是鍵值構成的條目。
11 Map保存了鍵到值的映射,不能有重複元素,每一個鍵最多映射一個值。 鍵和值在調用put方法前會先進行裝箱操做。
12 接口Map提供了不少查詢、更新和獲取存儲的鍵值對的方法,更新包括方法clear()、put()、putAll()、remove()等等,查詢方法包括containsKey、containsValue等等。Map接口經常使用的有三個具體實現類,分別是HashMap、LinkedHashMap、TreeMap。
13 HashMap是基於哈希表的Map接口的非同步實現,繼承自AbstractMap,AbstractMap是部分實現Map接口的抽象類。
14 引用對象不包含操做對象,而是包含對象在內存中的地址。
15 Elephant類:由編寫者決定排序.可使用Arrys.sort或Collections.sort來排序Elephant對此昂的數組或者list。
學習到第十四章