首页 > 代码库 > Java 类中成员初始化顺序

Java 类中成员初始化顺序

     Java 中的类成员 基本分为 静态成员, 实例变量  方法中特别的是静态方法和构造方法。

    1、定义一个类

public class ClassLoaderTest {


    public int a ;

    public String b;

    private static int c;


    public  ClassLoaderTest(){

        System.out.println("执行前:"+ a + "  "+ b);

        a = 10;

        b = "lisi";

        System.out.println("构造方法执行" + a + "  " + b);

    }


    {

        a = 1;

        b = "zhangsan";

        System.out.println("实例变量加载 is "+a +"  " + b);

    }


    static{

        c = 100;

        System.out.println(c);

    }


    public static void main(String args[]){

       //new ClassLoaderTest();


    }

}


 单纯执行一个main方法, 类加载机制加载.class文件,将字节码数据缓存到内存中,如果发现类中有静态变量和静态方法 就会执行静态代码块, 所以结果会输出100; 类加载的时候会初始化静态变量,

 当new ClassLoaderTest()的时候 ,实例化对象,  new 关键字会在堆内存中随机分配一块内存,会先执行实例代码块,分配实例变量,然后在调用构造方法进一步初始化实例变量