1、超类静态变量;超类静态初始化块。--按排列顺序;
2、子类静态变量;子类静态初始化块。--按排列顺序;
3、超类成员变量;超类初始化块。--按排列顺序;
4、超类构造函数。
5、子类成员变量;子类初始化块。--按排列顺序;
6、子类构造函数。
注1:按排列顺序--是指哪个代码写在前面就先初始化谁。 注2:如果谁觉得很有用,就开个贴给我点分吧,^_^--------------下面是别人的例子,供参考。 class Super { Super() {
System.out.println("超类默认构造器.n-------------");
} {
System.out.println("超类初始化块.n-------------");
} Print s1 = new Print("超类变量.n-------------");
static {
System.out.println("超类静态初始化块.n-------------");
} static Print s2 = new Print("超类静态变量.n-------------");}class Class extends Super { static Print s4 = new Print("静态变量.n-------------"); static {
System.out.println("静态初始化块.n-------------");
} public Class() {
System.out.println("构造器.n-------------");
} Print s3 = new Print("变量.n-------------");
{
System.out.println("初始化块.n-------------");
}
}class Print {
public Print(String s) {
System.out.println(s);
}
}public class ClassInitializtion {
public static void main(String[] args) {
new Class();
}
}
2、子类静态变量;子类静态初始化块。--按排列顺序;
3、超类成员变量;超类初始化块。--按排列顺序;
4、超类构造函数。
5、子类成员变量;子类初始化块。--按排列顺序;
6、子类构造函数。
注1:按排列顺序--是指哪个代码写在前面就先初始化谁。 注2:如果谁觉得很有用,就开个贴给我点分吧,^_^--------------下面是别人的例子,供参考。 class Super { Super() {
System.out.println("超类默认构造器.n-------------");
} {
System.out.println("超类初始化块.n-------------");
} Print s1 = new Print("超类变量.n-------------");
static {
System.out.println("超类静态初始化块.n-------------");
} static Print s2 = new Print("超类静态变量.n-------------");}class Class extends Super { static Print s4 = new Print("静态变量.n-------------"); static {
System.out.println("静态初始化块.n-------------");
} public Class() {
System.out.println("构造器.n-------------");
} Print s3 = new Print("变量.n-------------");
{
System.out.println("初始化块.n-------------");
}
}class Print {
public Print(String s) {
System.out.println(s);
}
}public class ClassInitializtion {
public static void main(String[] args) {
new Class();
}
}
http://dev.csdn.net/article/76/76370.shtm总结:
1、类只有在使用New调用创建的时候才会被JAVA类装载器装入
2、JAVA类首次装入时,会对静态成员变量或方法进行一次初始化
3、创建类实例时,首先按照父子继承关系进行初始化
4、类实例创建时候,首先初始化块部分先执行,然后是构造方法;然后从
本类继承的子类的初始化块执行,最后是子类的构造方法
5、类消除时候,首先消除子类部分,再消除父类部分
1、类只有在使用New调用创建的时候才会被JAVA类装载器装入
不对,Class.forName就可以,不需要使用new创建实例
2、JAVA类首次装入时,会对静态成员变量或方法进行一次初始化
和方法没有关系