静态代码块/初始化代码块/构造器的加载顺序和注意点?

package cn.bzh;
/*1.java里面可以通过代码块来初始化数据进行赋值
 * 
 *2.静态初始化代码块只在类加载的时候执行,且只会执行一次
 *
 *3.静态代码块只能给静态变量赋值,不能给非静态变量赋值
 * 
 *4.加载顺序  静态代码块——>初始化代码块->构造方法
 * */
public class Test5 {
	int num1;
	int num2;
	static int num3;  //静态变量
	int num4;
	
	//构造方法
	public Test5(){
		num1=89;
		System.out.println("通过构造方法对num1进行赋值");
	}
	
	//初始化代码块
	{
		num2=67;
		System.out.println("通过初始化代码块对num2进行赋值,可重复加载");
	}
	
	//静态初始化代码块
	static{
		
		num3=99;
		/*num4=1;//编译报错,只能给静态变量赋值*/
		System.out.println("通过静态初始化代码块对num3进行赋值,并且只加载一次,只保持一份");
	}
	
	public static void main(String[] args) {
		Test5 te=new Test5();
		System.out.println("num1:\t"+te.num1);
		System.out.println("num2:\t"+te.num2);
		System.out.println("num3:\t"+te.num3);
		Test5 tess=new Test5();
		
	}
	
}

猜你喜欢

转载自blog.csdn.net/Java_stud/article/details/82317278