1. 程式人生 > 實用技巧 >JAVA類的生命週期實踐加理解

JAVA類的生命週期實踐加理解

程式碼

public class TestClass {

    public static int k=0;

    public static TestClass t1=new TestClass("t1");
    public static TestClass t2=new TestClass("t2");

    public static int i=print("i");

    public static int n=99;

    public int j=print("j");

    {
        print("構造塊");
    }

    static {
        print("靜態塊");
    }

    public TestClass(String str) {
        System.out.println((++k)+""+str+"i="+i+"n="+n);
        ++n;
        ++i;
    }

    public static int print(String str){
        System.out.println((++k) +":" + str + "   i=" + i + "   n=" + n);
        ++n;
        return ++ i;
    }

    public static void main(String[] args){
        System.out.println("=========start============");
        TestClass t = new TestClass("init");
        System.out.println("=========end============");
    }
}

執行結果

1:j   i=0   n=0
2:構造塊   i=1   n=1
3t1i=2n=2
4:j   i=3   n=3
5:構造塊   i=4   n=4
6t2i=5n=5
7:i   i=6   n=6
8:靜態塊   i=7   n=99
=========start============
9:j   i=8   n=100
10:構造塊   i=9   n=101
11initi=10n=102
=========end============

講解

//	程式碼由上到下 依次執行
//	由static修飾的變數或方法是在方法區,屬於類變數、類方法
//	new物件這個操作,new出來的物件在堆裡 物件的引用在棧裡
//	new出來的物件  方法快先構造方法執行