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

Posted on 2018-07-04 15:34  沐兮少爷  阅读(203)  评论(0)    收藏  举报

静态代码块   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构造方法执行了

 

如图所示,图中将Demo改成了Demo4

 


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

 

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3