Java类初始化2

来源:互联网 发布:导入标准件的软件 编辑:程序博客网 时间:2024/06/05 14:22
public class Test2 {    public static void main(String[] args) {        System.out.println("main starts");        T t=new T();    }}class T{    static {        G g=new G();    }    T(){        System.out.println("T starts");    }    int a=5;    static int b=7;}class G{    int b=5;    public void f(){        System.out.println("f() starts");    }    G(){        System.out.println("G starts");    }}

输出:

main startsG startsT starts

说明:
1、”从main进入“输出“main starts”定义变量T t=new T();
2、加载类T,初始化类T中的static{G g=new G();}块儿,这里的static块只会执行一次
3、其中这时又加载类G,初始化b=5,然后输出G starts,g有了值,
4、之后初始化static b=7,然后初始化a=5,然后输出T starts,这个static只会执行一次
5、然后t也就有了值

1 0
原创粉丝点击