您的位置:首页 > 编程语言 > Java开发

java 对象的初始化过程

2015-12-26 14:58 585 查看
PersonDemo  p=new  PersonDemo("lisi",20);这句话都做了什么事情?


因为new用到了PersonDemo.class,所以会先找到PersonDemo.class文件并加载到内存中。

执行该类中的静态成员和static代码块,如果有的话,给persondemo.class类进行初始化。

在堆内存中开辟空间,分配内存地址。

在堆内存中建立对象的特有属性,并进行默认初始化。

对属性进行显示初始化。

对对象进行构造代码块初始化。

对对象进行对应的构造函数初始化。

将内存地址付给栈内存中的p变量。

public class PersonDemo {
private String name="zhang";
private int age;
private static String country = "cn";

//静态代码块,对PersonDemo.class类进行初始化
static {
System.out.println("静态代码块" + country);
}

//构造代码块,对对象进行初始化
{
System.out.println("构造代码块" + this.name);
}

//构造方法
public PersonDemo(String name, int age) {
this.name = name;
this.age = age;
}

public void setName(String name) {
this.name = name;
}

public static void show() {
System.out.println("静态方法" + country);
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: