class bowl
public void f1(int maker) }
class table
public void f2(int maker)
static bowl bowl2=new bowl(2);
}class cupboard
public void f3(int maker)
static bowl bowl5=new bowl(5);
}class staticorder
static table table=new table();
static cupboard cup=new cupboard();
}
輸出結果為:
bowl(1)
bowl(2)
table
f1(2)
bowl(4)
bowl(5)
bowl(3)
cupboard
f1(2)
create new cupboard in main
bowl(3)
cupboard
f1(2)
create new cupboard in main
bowl(3)
cupboard
f1(2)
f2(1)
f3(1)
由以上**可以看出初始化的順序是先靜態物件(如果他們尚未因前面的物件建立過程而被初始化),然後"非靜態"物件。靜態只被初始化一次!
下面再舉一例
class staticorder
//static table table=new table();
//static cupboard cup=new cupboard();
}class teststatic
public static void print()
static
}
輸出為:
我是靜態**塊
我什麼也沒有
我是初始化函式
我是靜態函式
java的靜態初始化和動態初始化
package array public class array for int i 0 i 3 i system.out.println for int i 2 i 0 i system.out.println system.out.print b.length n 動態初始化 inta new ...
Java初始化問題
類載入機制 一 對於被static修飾的類變數 被final修飾。在準備階段給類變數申請記憶體空間的同時就通過constantvalue屬性進行初始化,在呼叫此變數的時候,不會對此類進行初始化。未被final修飾。在初始化階段進行了初始化,通過類構造器 方法進行初始化,只在類使用之前呼叫一次。被動引...
java中靜態初始化塊,例項初始化塊,建構函式區別
public class people public people string name param args public static void main string args 執行效果 new兩個例項,從執行結果可以看出,靜態變數和靜態初始化塊都是在類載入到系統時,載入到系統中,靜態初始化...