代码块
代码块在类中声明,类似一个没有名称的方法体(代码块),代码块分实例块和静态块.
实例块:每次创建对象时自动调用
{
//任何符合语法的java代码
}
静态块:类加载时自动调用,仅一次,与是否创建对象无关.
static{
//任何符合语法的java代码
}
public class Demo {
static int num = 10;
{
System.out.println("实例块");
}
static{
System.out.println("静态块");
}
}
public static void main(String[] args) {
System.out.println(Demo.num);
System.out.println(Demo.num);
System.out.println(Demo.num);
}
/*
结果:
静态块
10
10
10
*/
public static void main(String[] args) {
new Demo();// 先加载类 然后创建对象
new Demo();
}/*
结果:
静态块
实例块
实例块
*/
注意:
JAVA中初始化的顺序:
加载类;
静态变量初始化
静态代码块;【其只能调度静态的,不能调度非静态的】
成员变量
构造代码块
构造方法
普通代码块