Java学习之代码块(静态,构造代码块,构造方法)执行顺序

静态代码块   static{ 代码 } 随着类的加载而加载,随类的消失而消失,存在于类中,方法外,最先执行,且只加载1次,可用来加载驱动及初始化对象属性.

构造代码块   {   } 也存在于类中,方法外,由多个构造方法中相同的代码存放到一个代码块中调用执行,由于构造方法执行.

具体执行顺序参考下面代码.

例:

public class Demo4 {
    static{
        System.out.println("Demo静态代码块执行了");
    }
    {
        System.out.println("Demo构造代码块执行了");
    }
    public Demo4(){
        System.out.println("Demo构造方法执行了");
    }
    public static void main(String[] rgs){
        new Demo4();
}
}

运行结果为:

Demo静态代码块执行了
Demo构造代码块执行了
Demo构造方法执行了

例2:

第一个类Demo4:

public class Demo4 {
    static{
        System.out.println("Demo静态代码块执行了");
    }
    {
        System.out.println("Demo构造代码块执行了");
    }
    public Demo4(){
        System.out.println("Demo构造方法执行了");
    }
    public static void main(String[] rgs){
        new Demo5();
    
new Demo4(); } }

public class Demo5 {
    String name = "王五";
    static{
        System.out.println("Demo5静态代码块执行了");
        Demo5 ps = new Demo5();
        System.out.println(ps.name);
        
    }
    {
        System.out.println("Demo5构造代码块执行了");
    }
    public Demo5(){
        System.out.println("Demo5构造方法执行了");
    }
}

第二个类Demo5

执行顺序为:

Demo静态代码块执行了
Demo5静态代码块执行了
Demo5构造代码块执行了
Demo5构造方法执行了
王五
Demo5构造代码块执行了
Demo5构造方法执行了

Demo构造代码块执行了
Demo构造方法执行了


注:认真思考,总结,万变不离其中.

猜你喜欢

转载自www.cnblogs.com/lboy1205/p/9263528.html