实例字段在每个实例中都有自己独有的“空间”,static关键字修饰的静态字段拥有一个共享的“空间”
定义静态成员变量:
public static int result;
定义静态方法:
public static void text() {}
//静态方法中允许仅访问静态的成员变量,也允许访问该类中的其他静态方法,但是不允许访问普通方法
普通和静态成员变量的访问的对比:
构造代码块和静态代码块:
static {
System.out.println("静态代码块");
}
{
System.out.println("构造代码块");
}
调用构造当法时要是在一个类中,静态代码块只会执行一次;静态代码块可以使用静态成员变量,前提静态成员的定义在静态代码块之前。
如:
class CodeBlock {
//静态成员变量
public static int value;
static {
System.out.println("静态代码块");
value += 10;
}
}
子类调用父类时优先执行父类里的次优先执行静态代码块
如: