A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gczsjj 中级黑马   /  2017-1-11 00:36  /  1079 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main(String[] args) {
                Person p = new Person();  
   },这段代码在内存中做了哪些事情?
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端

3 个回复

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

来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
Arvin王春伟 发表于 2017-1-11 07:40
1,class文件进方法区,并进行空间分配。
                2,如果有静态变量,先默认初始化,显示初始化。
                3,如果有 ...

谢谢,分享
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马