java類載入順序

u011167211發表於2015-02-06
package com.demo;

/**
* @Description 類載入順序
* @author FuJianyong
* 2015-2-6上午11:21:37
*/
public class ClassLoaderSequence {

String s1 = "成員屬性";

static String s2 = "靜態屬性";

String s3;

static String s4;

static {
System.out.println("靜態程式碼快");
}

{
System.out.println("普通程式碼快");
}

public static void test1() {
System.out.println("靜態方法");
}

public void test2() {
System.out.println("普通方法");
}

public static void main(String[] args) {
// ClassLoaderSequence.test1();
new ClassLoaderSequence().test2();
}
}


//執行 ClassLoaderSequence.test1(); 得出結論:類載入會先載入有初始值的靜態屬性和靜態程式碼快順序從上至下,最後呼叫方法。

//執行 new ClassLoaderSequence().test2(); 得出結論:先載入類,new出物件後(構造方法)載入有初始值的屬性和程式碼快(有初始值的靜態屬性已經載入過所以不會在載入)順序從上至下,最後呼叫方法。

//綜合結論:
類載入不會載入靜態方法、普通方法、普通程式碼快、沒有初始值的屬性、有初始值非靜態的屬性。
類載入會載入靜態程式碼快、有初始值的靜態屬性,順序從上至下。

相關文章