Java学习之代码块(静态,构造代码块,构造方法)执行顺序

静态代码块   static{ 代码 } 随着类的加载而加载,随类的消失而消失,存在于类中,方法外,最先执行,且只加载1次,可用来加载驱动及初始化对象属性.

构造代码块   {   } 也存在于类中,方法外,由多个构造方法中相同的代码存放到一个代码块中调用执行,由于构造方法执行.

具体执行顺序参考下面代码.

例:

public class Demo4 {
static{
System.out.println("Demo静态代码块执行了");
}
{
System.out.println("Demo构造代码块执行了");
}
public Demo4(){
System.out.println("Demo构造方法执行了");
}
public static void main(String[] rgs){
new Demo4();
}
}

运行结果为:

Demo静态代码块执行了
Demo构造代码块执行了
Demo构造方法执行了

例2:

第一个类Demo4:

public class Demo4 {
static{
System.out.println("Demo静态代码块执行了");
}
{
System.out.println("Demo构造代码块执行了");
}
public Demo4(){
System.out.println("Demo构造方法执行了");
}
public static void main(String[] rgs){
new Demo5();
    new Demo4();
}
}
public class Demo5 {
String name = "王五";
static{
System.out.println("Demo5静态代码块执行了");
Demo5 ps = new Demo5();
System.out.println(ps.name); }
{
System.out.println("Demo5构造代码块执行了");
}
public Demo5(){
System.out.println("Demo5构造方法执行了");
}
}

第二个类Demo5

执行顺序为:

Demo静态代码块执行了
Demo5静态代码块执行了
Demo5构造代码块执行了
Demo5构造方法执行了
王五
Demo5构造代码块执行了
Demo5构造方法执行了

Demo构造代码块执行了
Demo构造方法执行了

如图所示,图中将Demo改成了Demo4

Java学习之代码块(静态,构造代码块,构造方法)执行顺序
注:认真思考,总结,万变不离其中.

上一篇:MT【278】二次齐次化


下一篇:关于php得到参数数据