`
youlong699
  • 浏览: 21774 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java 初始化顺序问题

阅读更多
初始化:静态先于非静态,父类先于子类,字段先于构造函数。论证程序如下:

package kxq;

public class Clazz4StaticInitializeTest  extends Super4StaticInitializeTest{
	static {
		System.out.println("Static initialize");
	}
	public static int i;
	
	public int j;
	{
		System.out.println("No-Static initialize");
	}
	public Clazz4StaticInitializeTest(){
		System.out.println("Constructor initialize");
	}
}
class Super4StaticInitializeTest{
	static {
		System.out.println("Static initialize in super class");
	}
	{
		System.out.println("None-Static initialize in super class"); 
	}
	public Super4StaticInitializeTest() {
		System.out.println("super contructor initialize"); 
	}
}
===========TestCase========
package kxq;

import org.junit.Test;

public class StaticInitialize {
	
	@Test
	public void test_case1() throws ClassNotFoundException{
		
		Class<?> clazz = java.lang.Class.forName(
				"kxq.Clazz4StaticInitializeTest", false, this.getClass().getClassLoader());
		System.out.println("============case1 done"); 
	}
	//============case1 done

	@Test
	public void test_case2() throws ClassNotFoundException{
		Class<?> clazz = java.lang.Class.forName(
				"kxq.Clazz4StaticInitializeTest", true, this.getClass().getClassLoader());
		System.out.println("============case2 done"); 
	}
	//Static initialize in super class
	//Static initialize
	//============case2 done


	@Test
	public void test_case3(){
		int k = Clazz4StaticInitializeTest.i;
		System.out.println("===========case3 done");
	}
	//Static initialize in super class
	//Static initialize
	//===========case3 done

	@Test
	public void test_case4(){
		Clazz4StaticInitializeTest cls = new Clazz4StaticInitializeTest();
		System.out.println("============case4 done"); 
	}
}
	//Static initialize in super class
	//Static initialize
	//None-Static initialize in super class
	//super contructor initialize
	//No-Static initialize
	//Constructor initialize
	//============case4 done

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics