java初始化快和静态初始化块

java静态初始化块可以理解为类初始化块它是属于类,不属于实例,当类第一次加载类的时候就会执行,所以它永远比实例化代码块优先执行,后面类实例化时不会执行,跟静态字段一样。它们的执行顺序跟定义的顺序一样,静态字段和静态代码块无优先执行,谁在定义在前面谁就最先执行,顶级父类的静态代码块最先执行,然后依次朝下走。

java初始化块也可以理解为实例初始化块,它是属于实例,当实例化一次就会执行一次,它总是在构造方法前执行,它和实例化字段一样,谁先定义谁就最先执行。顶级父类的实例化代码块最先执行,然后依次朝下。

package frank;
public class App extends Parent
{
	public static void main(String[] args)
	{
		App asads = new App();
		
		App asads2 = new App();
	}
	protected void get()
	{
		System.out.println("子类");
	}
	{
		System.out.println("sadsad");
	}
	static
	{
		System.out.println("子类静态块");
	}
}
class Parent
{
	public Parent()
	{
		this.get();
		System.out.println(a);
	}
	protected void get()
	{
		System.out.println("父类");
	}
	int a = 9;
	{
		a = 6;
		System.out.println("初始化块1");
	}
	static
	{
		System.out.println("静态块");
	}
}

  

posted on 2013-08-02 17:41  wp456  阅读(351)  评论(0)    收藏  举报

导航