黑马程序员技术交流社区

标题: 构造方法的加载过程? [打印本页]

作者: gczsjj    时间: 2017-1-11 00:36
标题: 构造方法的加载过程?
public static void main(String[] args) {
                Person p = new Person();  
   },这段代码在内存中做了哪些事情?

作者: Arvin王春伟    时间: 2017-1-11 07:40
        1,class文件进方法区,并进行空间分配。
                2,如果有静态变量,先默认初始化,显示初始化。
                3,如果有静态代码块,要执行,仅一次。
                4,通过new在堆内存中开辟空间,并明确首地址。
                5,对对象中的属性进行默认初始化。
                6,调用对应的构造函数进行初始化。
                7,构造函数内部。
                        7.1 调用父类构造函数super();
                        7.2 成员变量的显示初始化。
                        7.3 构造代码块初始化。
                        7.4 构造函数内容自定义内容初始化。
                8,对象初始化完毕后,将地址赋值给p引用变量。


作者: gczsjj    时间: 2017-1-11 11:13
Arvin王春伟 发表于 2017-1-11 07:40
1,class文件进方法区,并进行空间分配。
                2,如果有静态变量,先默认初始化,显示初始化。
                3,如果有 ...

谢谢,分享

作者: 袁志娜    时间: 2017-1-11 22:12





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2