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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© youyuxiaoyu 中级黑马   /  2015-9-27 08:04  /  442 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

最近查看资料,总结分析了创建对象的初始化流程,和大家分享一下。
Student s = new Student();
初始化顺序

把Student.class文件加载到内存中
如果有static代码块加载该代码块
在堆内存中创建一个对象Student
把Student中的属性进行默认初始化
把Student中的属性进行显示初始化
如果有构造代码块加载该代码块
调用构造方法进行初始化
在栈内存中声明Student类型的变量s
将对象Student的地址值赋值给s

4 个回复

倒序浏览
粗看了下,应该是这样
回复 使用道具 举报
好像错了个顺序,,,先静态代码库,然后构造代码块,然后构造代码块(和对象成员变量同级别,看代码顺序如何)
回复 使用道具 举报
收下了  楼主好人
回复 使用道具 举报
顶起来,顶起来
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马