static代码块、父子类加载顺序

static代码块、父子类加载顺序
package org.xjn.oop;


import org.junit.Test;


public class Bar {
     {
          System.out.println("Bar Non-static code block");
     }


     static{
          System.out.println("Bar static code block");
     }
    
     public Bar() {
          System.out.println("Bar Constructor");
     }


}


class Xoo extends Bar {
     static {
          System.out.println("Xoo static code block");
     }
     Bar bar = new Bar();


     public Xoo() {
          System.out.println("Xoo Constructor");
     }
}


class Yoo {
     Xoo x = new Xoo();


     public Yoo() {
          System.out.println("Yoo Constructor");
     }
}






package org.xjn.oop;


public class TestOop {


     /**
     * @param args
     * @throws ClassNotFoundException
     */

     public static void main(String[] args) throws ClassNotFoundException {
          // TODO Auto-generated method stub
//          Class.forName("org.xjn.oop.Xoo");

          Yoo yoo = new Yoo();
          /*
          * Bar static code block
          * Xoo static code block
          * Bar Non-static code block
          * Bar Constructor
          * Bar Non-static code block
          * Bar Constructor
          * Xoo Constructor
          * Yoo Constructor
          *
          * 类装载器把一个类装入JVM中的步骤:
          * 1、装载:查找和导入Class文件
          * 2、链接:
          *           a、校验:检查载入Class文件数据的正确性
          *           b、准备:给类的静态变量分配存储空间(分配空间与创建对象不是同一时间进行的)
          *           c、解析(可选):将符号引用转成直接引用
          * 3、初始化:对类的静态变量、静态代码块执行初始化工作。
          *
          * ##静态代码块并不是在装载Class文件时就执行
          */

     }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值