java 调用静态方法和构造函数和静态块执行的先后顺序

2025-01-02 11:31:37
推荐回答(3个)
回答1:

java中首先是静态块先执行,静态方法,最后是构造函数。示例如下:

public class ExA {  
    static {  
        System.out.println("父类--静态代码块");  
    }  
  
    public ExA() {  
        System.out.println("父类--构造函数");  
    }  
  
    {  
        System.out.println("父类--非静态代码块");  
    }  
  
    public static void main(String[] args) {  
        new ExB();  
    }  
}  
  
class ExB extends ExA {  
    static {  
        System.out.println("子类--静态代码块");  
    }  
    {  
        System.out.println("子类--非静态代码块");  
    }  
  
    public ExB() {  
        System.out.println("子类--构造函数");  
    }  
}  

执行结果 
===== 
父类--静态代码块 
子类--静态代码块 
父类--非静态代码块 
父类--构造函数 
子类--非静态代码块 
子类--构造函数

回答2:

静态块和静态变量是并列的,谁在前谁最先。接下来,main,除了main 静态方法都不会执行,实例化以后再执行,

回答3:

构造方法是只有你在new对象的时候才会执行,静态语句块和静态方法在类加载到内存的时候就已经执行了
,另外,静态语句块只能给静态变量赋值,里面不能出现方法,同样,静态方法里面也不能出现静态语句块