1、示例代码:
class Dmeo
{
int a=f1();
static int b=f2();
Demo()
{
System.out.println("构建器开始执行!");
}
{
System.out.println("非静态代码块执行!");
}
static {
System.out.println("静态代码块执行!");
}
int f1()
{
System.out.println("非静态变量开始初始化");
return 1;
}
int f2()
{
System.out.println("静态变量开始初始化");
return 2;
}
}
Demo d=new Demo();
结果:
静态变量开始初始化
静态代码块开始初始化
非静态变量开始初始化
非静态代码块开始初始化
构建器开始执行
注意:当同为静态或非静态时,那么执行的顺序就是它们在代码上出现的位置的先后。
2、当一个子类继承一个父类时,那么执行顺序又是如何呢。
class A11
{
A11()
{
System.out.println("A constructor");
}
{
System.