用static修饰的类成员独立于任何类的对象,可以在实例化之前就被调用,而一般的类成员必须通过类的对象访问。
static修饰的变量是全局变量,该类的所有实例对象共用一个static变量。一个对象中修改了之后其他对象中使用的也就改变了。
static方法中只能调用static方法和变量;
一个类被装载前所有的static修饰的变量会获得存储空间,由static修饰的块也会首先被执行:
static int b;
static void meth(int x) {
System.out.println("x = " + x);
System.out.println("a = " + a);
System.out.println("b = " + b);
}
static {
System.out.println("Static block initialized.");
b = a * 4;
}
public static void main(String args[]) {
meth(42);
}
}
最后的执行结果是:
Static block initialized.
x = 42
a = 3
b = 12
在定义它们