首页 > 代码库 > 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 关键字会在堆内存中随机分配一块内存,会先执行实例代码块,分配实例变量,然后在调用构造方法进一步初始化实例变量