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

Person p = new Person("li",20); 到底干了些什么?

2017-10-11 15:49 225 查看
  Person  P  = new Person();

这是简单的创建对象的一个过程,那么,在这个过程中,具体发生了什么?

我们来简单探究一下这个过程。

第一步: new  Person(),使用到了Person.class 文件,JVM会找到Person.class文件,并将其加载到内存中。

第二步:类加载之后,会执行类中static代码块,如果有的话,给这个类进行初始化。

第三步:在堆内存中开辟空间,并分配内配内存地址。

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

第五步:对属性进行显性初始化

第六步:对属性进行构造代码块初始化

第七步:对属性进行对象的构造函数初始化

第八步:将内存中的地址赋给栈内存中的P 变量

如果这个类中有静态变量。静态变量不在堆中,而是方法区中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java