static 变量在 Java 中是属于类的,它在所有的实例中的值是一样的。当类被 Java 虚拟机载入的时候,会对 static 变量进行初始化。如果你的代码尝试不用实例来访问非 static 的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。
public class Test {
@org.junit.Test
public void test(){
//Demo demo =new Demo();
System.out.println(Demo.a);
//System.out.println(Demo.b);//报错
Demo demo =new Demo();
System.out.println(Demo.a);//通过
System.out.println(demo.b);//通过
}
}
class Demo{
static int a = 1;
int b =2;
}