您的位置:首页 > 其它

新建一个对象初始化执行顺序

2014-03-26 09:23 253 查看
/** * Person p = new Person(); 1,加载Person.class文件。 2,执行Person类中的静态代码块对Person类进行初始化。 3,在堆内存开辟空间分配内存地址,并对对象中的属性进行默认初始化和构造代码块初始化。 注:(构造代码块的初始化跟对象中的默认属性是一致的,谁在前,就先实例化谁。) 如:下面则先运行int x=4; 在运行构造代码块,之后再执行int y=5; ======================================= int x = 4; { System.out.println("d"); } int y=5; ======================================= 4,与之对应的构造函数初始化。 5,将对象的内存地址值赋值给p。 * */
public class StaticCode {
int x = 4;{// System.out.println("d" + age);//在这里如果写上成员变量age,则会编译失败,不管age属性是私有还是共有。System.out.println("d");}static {System.out.println("a");}private int age=2;
StaticCode(int x) {System.out.println("g");}
StaticCode() {System.out.println("f");}
void show() {System.out.println("e");} }

class StaticCodeDemo {
static {System.out.println("b");}
//此方法执行的输出的值依次是:b、a、d、f、e、d、g、epublic static void main(String[] args) {new StaticCode().show();new StaticCode(4).show();}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: