50 likes | 221 Views
Java 入門到認證. 二十、列舉物件與垃圾收集 作者:許裕永. 1、Enum. 1-1 宣告 enum EnumName{ObjectName1,ObjectName2 … .} enum:關鍵詞,Java編譯器會以背景作業方式建立繼承Enum類別的子類別,並建構類別中的列舉物件。 EnumName:自訂的類別名稱。 ObjectName:自訂的列舉物件名稱,個數不限。這些物件一定是:public、final、static。 1-2 自訂建構方法 我們可以像開發類別一樣,在eunm中,宣告及定義資料成員、方法成員及建構方法。 1-3 預設的重要方法
E N D
Java 入門到認證 二十、列舉物件與垃圾收集 作者:許裕永
1、Enum • 1-1 宣告 • enum EnumName{ObjectName1,ObjectName2….} • enum:關鍵詞,Java編譯器會以背景作業方式建立繼承Enum類別的子類別,並建構類別中的列舉物件。 • EnumName:自訂的類別名稱。 • ObjectName:自訂的列舉物件名稱,個數不限。這些物件一定是:public、final、static。 • 1-2 自訂建構方法 • 我們可以像開發類別一樣,在eunm中,宣告及定義資料成員、方法成員及建構方法。 • 1-3 預設的重要方法 • String name() • int ordinal() • static T valueOf(Class<T> enumType, String name) • static T valueOf(String name) • static enumType[] values() • 1-4 宣告為內部類別 • enum也可以宣告在類別之中,成為內部類別,但是不可以宣告在方法之中。 • 宣告為內部類別的enum,預設為static。
2、Garbage Collection • 2-1 物件收原基本原理 • Java提供了垃圾物件自動回收機制,讓設計師可以不必分心於物件的銷毀。 • 執行環境會依照程式執行的狀況,找到適當的時機,再把記錄於垃圾集合件中的物件代號所代表的所有物件,全部銷毀。 • 這種機制,或許浪費了一些效能,但卻可以省下設計師不少的困擾(時間)。 • 2-2 適合被回收的物件 • 適合被回收的物件只有一種:沒有參考變數儲存其物件代號的物件。 • 2-3 立刻執行物件的銷毀 • 呼叫類別System中的類別方法成員gc()。 • 建構RunTime物件,執行其實體方法成員gc()。
3、認證重點整理 • 3-1 Enum • Enum是一個抽象類別。但是,它不接受設計師撰寫類別來繼承它。 • enum是一個宣告列舉類別的關鍵詞,Java編譯器會以背景作業方式建立繼承Enum類別的子類別,並建構類別中的列舉物件。 • 我們可以像開發類別一樣,在eunm中,宣告及定義資料成員、方法成員及建構方法。 • enum中的類別常數成員宣告完畢後,必須上‘;’,才可以開始自訂其他的成員或方法。 • 若自訂有參數的建構方法,enum中的類別常數成員在宣告時,必須用小括號提供建構方法參數。 • enum中自訂建構方法的存取限制,若宣告為public將無法編譯。 • switch支援enum成員的判斷,判斷時便是自動呼叫該成員的ordinal()來取得整數值。 • enum也可以宣告在類別之中,成為內部類別,但是不可以宣告在方法之中。 • 宣告為內部類別的enum,預設為static。
3、認證重點整理(二) • 3-2 Garbage Collection • Java的執行環境,建構了一個垃圾集合物件(Garbage Colletion),任何程式中建構的物件,只要是適合被回收的物件,Java便會把該物件的物件代號,記錄於Garbage Collection物件之中。 • 執行環境會依照程式執行的狀況,找到適當的時機,再把記錄於垃圾集合件中的物件代號所代表的所有物件,全部銷毀。 • 適合被回收的物件只有一種:沒有參數變數儲存其物件代號的物件。 • 物件建構之後,沒有把物件代號指派給參考變數的物件。此類物件在其執行完該行敍述句後,便會被記錄於垃圾集合物件之中。 • 把B物件之物件代號,指派給原先儲存A物件代號的參考變數,而A物件已經沒有任何參考變數儲存它的物件代號時,A物件便會被記錄到垃圾集合物件之中。 • 指派null給原先儲存A物件代號的參考變數,而A物件已經沒有任何參考變數儲存它的物件代號時,A物件便會被記錄到垃圾集合物件之中。 • 一個被孤立的物件群組,會全部被回收。 • 呼叫類別System中的類別方法成員gc(),可以命令Java執行環境立刻執行物件銷毀的動作。 • 取得RunTime物件,執行其實體方法成員gc(),可以命令Java執行環境立刻執行物件銷毀的動作。