ch08 生命期的探討與列舉類型

8-1 變數種類與其生命期

變數留在記憶體時間的長短

class Book {
	// static, count is class variable
	static int count = 0;
	// property is instance variable
	String name = "Steve Jobs";
	// args chapter is method variable
	public void contents(int chapter) {
		// k in loop is a block variable
		for (int k = 1; k >= chapter; k++) {
			System.out.printf("chapter %d\n", k);
		}
	}
}

參考 page 8-3 圖 8-1 各種變數記憶體配置示意圖

參考 page 8-3 變數說明

參考 page 8-5 區域變數(Local Vaiable)

參考 page 8-5 程式範例 LifeTime.java

參考 page 8-7 如何尋找變數宣告方式

參考 page 8-8 程式範例 ClaInsVar.java

8-2 方法種類與呼叫方式

Java 的方法 分為

參考 page 8-9 注意

參考 page 8-10 程式範例 ClaInsMethod.java

參考 page 8-11 圖 8-2 範例 ClaInsMethod 記憶體配置示意圖

8-3 類別成員的匯入

// can access class static member without class name
import static classMem.Book.getCount; // note static

參考 page 8-12 程式範例 classMem/Book.java

參考 page 8-12 程式範例 classMem/Execute.java

java  classMem.Execute

8-4 main() 方法的參數傳遞與系統屬性設定

8-4-1 main() 方法

參考 page 8-14 程式範例 Execute.java

// run cmd
// cd change to bin directory
java  Execute 200 500 800

8-4-2 系統屬性的設定

參考 page 8-15 程式範例 Property.java

java Property
prop1 = null
prop2 = null

java -Dbook.price=567.5 Property
prop1 = 567.5
prop2 = 567.5

java -Dbook.price=Hello Property
prop1 = Hello
prop2 = Hello

8-5 內部類別(Inner Class)

Inner Class has

8-5-1 Static 內部類別

參考 page 8-15 程式範例 StaticCla.java

8-5-2 Instance 內部類別

參考 page 8-18 程式範例 InstanceCla.java

8-5-3 Method 內部類別

參考 page 8-20 程式範例 MethodCla.java

8-5-4 Anonymous 內部類別

參考 page 8-20 程式範例 AnonymousCla.java

8-6 Java 列舉類型

public final static int SPRING = 1;
public final static int SUMMER = 2;
public final static int FALL = 3;
public final static int WINTER = 4;

8-6-1 Java 列舉類型的規則

參考 page 8-24 程式範例 EnumType.java

參考 page 8-25 程式範例 EnumTypeInner.java

8-6-2 Java 列舉類型的特色

參考 page 8-26 程式範例 EnumAdv.java

8-7 資源回收(Garbage Collection, GC)機制

8-7-1 資源回收的啟動要件

參考 page 8-28 圖

參考 page 8-29 程式範例 GCTime.java

8-7-2 資源回收的相關方法

參考 page 8-31 程式範例 GCMethod.java