1、总结如下:
1、Java中静态变量只能在类主体中定义,不能在方法中定义。
2、静态变量属于类所有而不属于方法。
3、静态块:用static申明,JVM加载类时执行,仅执行一次。
4、构造块:类中直接用{ }定义,每次创建对象时执行
5、执行顺序优先级:静态代码块 > main() > 构造代码块 > 构造方法
6、类的加载顺序
- 父类静态对象和静态代码块
- 子类静态对象和静态代码块
- 父类非静态对象和非静态代码块
- 父类构造函数
- 子类 非静态对象和非静态代码块
- 子类构造函数
2、实例如下:
public class StaticDemo {
static int age1 = 1;
static{
age1 = 10;
System.out.println("这是静态代码块!");
}
{
System.out.println("这是普通代码块!"+age1);
}
public StaticDemo(){
System.out.println("这是构造方法!");
}
public void fun(){
System.out.println("这是普通方法fun");
}
public static void show(){
System.out.println("这是静态方法"+age1);
}
public static void main(String[] args) {
System.out.println("------------------------------");
StaticDemo.show();
StaticDemo staticDemo1 = new StaticDemo();
staticDemo1.fun();
staticDemo1.fun();
StaticDemo staticDemo2 = new StaticDemo();
staticDemo2.fun();
staticDemo2.fun();
}
}
运行结果截图如下: