静态内容是优先于对象存在的
1.静态变量(他是安安静静,不跟别人一伙的,所以他不会调用非静态变量,除非叫他妈来)
静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
public class HelloWorld {
int num1;
int num2;
static int num3;
public HelloWorld(){
num1=99;
System.out.println("通过构造方法为num1赋值");
}
{
num2=12;
System.out.println("通过初始化为num2赋值");
}
static{
num3=34;
System.out.println("通过静态初始化为num3赋值");
}
public static void main(String[] args) {
HelloWorld d=new HelloWorld();
System.out.println("num1 "+d.num1);
System.out.println("num2 "+d.num2);
System.out.println("num3 "+num3);
HelloWorld d2=new HelloWorld();
}
}
运行结果:
通过静态初始化为num3赋值
通过初始化为num2赋值
通过构造方法为num1赋值
num1 99
num2 12
num3 34
通过初始化为num2赋值
通过构造方法为num1赋值