代码块
public class Demo {
public static void main(String[] args){
{
int a = 1;
System.out.println(a);
}
int a = 2;
System.out.println(a);
}
}
运行结果
1
2
构造代码块
放在要创建对象的类中的代码块,称为构造代码块。构造代码块与构造方法先后顺序无关,首先调用构造代码块,然后调用构造方法
class A {
public A(){
System.out.println("调用了构造方法");
}
{
System.out.println("调用了构造代码块");
}
}
public class Demo {
public static void main(String[] args){
new A();
new A();
}
}
运行结果
调用了构造代码块
调用了构造方法
调用了构造代码块
调用了构造方法
静态代码块
静态代码块优先于构造代码块执行,且无论创建多少对象,一个静态代码块只会被调用一次
class A {
public A(){
System.out.println("调用了构造方法");
}
{
System.out.println("调用了构造代码块");
}
static {
System.out.println("调用了静态代码块");
}
}
public class Demo {
public static void main(String[] args){
new A();
new A();
}
}
运行结果:
调用了静态代码块
调用了构造代码块
调用了构造方法
调用了构造代码块
调用了构造方法