java类创建时里面成员执行的先后顺序

静态代码块在类第一次使用的时候执行一次,在构造函数执行之前执行。只要用到类,哪怕new对象(比如只声明变量)也会被执行,且只执行一次。一般用于对类进行初始化。

先执行静态代码块,静态成员(谁在前就先执行谁)。无论new几次 静态代码块和静态成员只执行一次

再执行成员变量,最后构造函数。new几次 成员变量和构造函数 执行几次。

代码:

1.声明StaitcBlock类

public class StaticBlock1 {
    private static String TAG="333";

    //成员变量
    private  int age1=setAge();

    //构造函数
    public  StaticBlock1(){
        Log.e(TAG, "构造函数");
    }

    //静态代码块
    static{
        Log.e(TAG, "静态代码块 " );
    }

    //静态成员
    private static int age2=setAge2();


    public static void main(String[] args) {
        StaticBlock1 b1=new StaticBlock1();

        StaticBlock1 b2=new StaticBlock1();
    }



    private int setAge(){
        Log.e(TAG, "getAge1: 方法1" );
        return 3;
    }

    private static int setAge2(){
        Log.e(TAG, "getAge2: 方法2" );

        return 333;
    }

}

2.在Activity中创建StaticBoloc类

 Log.e(TAG, "onCreate: ------------------------开始" );
        StaticBlock1 b1=new StaticBlock1();
        Log.e(TAG, "----------------------------------------------------------------------------------" );
        StaticBlock1 b2=new StaticBlock1();

3.结果

原文地址:https://www.cnblogs.com/wangjiaghe/p/7073625.html