Day08代码块之静态代码块

281 阅读1分钟
public class D1 {
	
	int age ;
	String name;
	static String country;
	
//	构造代码块
	{
		
		age = 12;
		 name = "陈独秀";
//		构造代码块都可赋值
		country = "japan";
		System.out.println("构造代码块执行了");
				
	}
//	静态代码块(被static 修饰)
	static {
//		age = 123;
//		name = "李大钊";      静态代码块不可赋值非静态的变量
		country = "china";//静态代码块只可以赋值给静态变量
		System.out.println("静态代码块执行了");
		
	}

}

测试类

public class Test {

	public static void main(String[] args) {
//		静态资源可以直接调用而不用创建对象
		System.out.println(D1.country);
		
//		此处构造代码块执行一次
		D1 d1 = new D1();
		System.out.println(d1.age);
		System.out.println(d1.name);
		
//		此处构造代码块执行第二次
		D1 d2 = new D1();
//		由此可知静态代码块此生只执行一次

	}

}