java 代码块-静态代码块: 执行顺序

静态代码块static{ }---static 成员变量

public class Block {
	static int b=100;
	
	static {
		b=-1;
	}
	
	//测试
	public static void main(String[] args) {
		System.out.print(b);//-1
	}
}


//-----------------------------
public class Block2 {
	
	static {
		b=-1;
	}
	
	static int b=100;
	
	//测试
	public static void main(String[] args) {
		System.out.print(b);//100
	}
}

构造代码块{ }--- 成员变量

public class Block {
	
	int a=10;
	{
	a=30;
	}
	
	{
	a=20;
	}
	
	//测试
	public static void main(String[] args) {
		System.out.print(new Block().a);//20
	}
}

//-----------------------------
public class Block {
	
	{
	a=30;
	}
	int a=10;
	{
	a=20;
	}
	
	//测试
	public static void main(String[] args) {
		System.out.print(new Block().a);//20
	}
}

//==========================
public class Block {
	
	{
	a=30;
	}
	{
	a=20;
	}
	
	int a=10;
	
	//测试
	public static void main(String[] args) {
		System.out.print(new Block().a);//10
	}
}

结论: static{ }---static 变量, 从上到下,依次执行,以最后一个为准;

                { }--成员变量:从上到下,依次执行,以最后一个为准;


猜你喜欢

转载自blog.csdn.net/eyeofeagle/article/details/80762401