读书人

Java种的初始化顺序

发布时间: 2012-08-25 10:06:20 作者: rapoo

Java类的初始化顺序
今天看了类的初始化顺序,于是动手测试,发现结果会有变化......

package com.xushiyun;/** * 测试  *  * */class A{static{System.out.println("当前执行位置"+"静态代码块AAAA");}{System.out.println("当前执行位置"+"普通代码块AAAA");}A(){System.err.println("当前执行位置"+this.getClass().getName()+"默认构造器");}}class B{static{System.out.println("当前执行位置"+"静态代码块BBBB");}{System.out.println("当前执行位置"+"普通代码块BBBB");}B(){System.err.println("当前执行位置"+this.getClass().getName()+"默认构造器");}}class C{static{System.out.println("当前执行位置"+"静态代码块CCCC");}{System.out.println("当前执行位置"+"普通代码块CCCC");}C(){System.err.println("当前执行位置"+this.getClass().getName()+"默认构造器");}}class D{static{System.out.println("当前执行位置"+"静态代码块DDDD");}{System.out.println("当前执行位置"+"普通代码块DDDD");}D(){System.err.println("当前执行位置"+this.getClass().getName()+"默认构造器");}}class Bird{static{System.out.println("当前执行位置"+"Bird静态代码块");};{System.out.println("当前执行位置"+"Bird普通代码块");}public Bird() {System.err.println("当前执行位置"+this.getClass().getName()+"默认构造器");}};class Person{D d = new D();static Bird bird = new Bird();static {System.out.println("当前执行位置"+"Person静态代码块");new A();System.out.println("当前执行位置"+"Person静态代码块-------结束");};{System.out.println("当前执行位置"+"Person普通代码块");new B();System.out.println("当前执行位置"+"Person普通代码块---------结束");}Person(){System.err.println("当前执行位置"+this.getClass().getName()+"默认构造器");new C();System.err.println("当前执行位置"+this.getClass().getName()+"默认构造器----结束");}}public class JavaTest {public static void main(String[] args) {               new Person();}}

读书人网 >编程

热点推荐