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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马利 中级黑马   /  2013-3-17 00:01  /  1477 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 malijava 于 2013-3-17 16:14 编辑

构造函数在创建对象等实体的时候,返回实体的内存原理是什么样的?

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1 新人加油

查看全部评分

5 个回复

倒序浏览
拿Person p = new Person();为例。主函数所在类的加载,就不说了,你肯定也明白。在堆内存中给对象p开辟空间,建立特有属性被默认初始化后,然后就被显示初始化,接着是这一类共有的属性被构造代码块初始化,然后就是根据你定义的构造函数就行初始化。下面是我总结对象的建立过程,你可以看下,希望对你有帮助。

对象建立过程.JPG (33.31 KB, 下载次数: 7)

对象建立过程.JPG

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
马利 来自手机 中级黑马 2013-3-17 11:11:55
藤椅
要的正是初始化前的过程,多谢你的回答
回复 使用道具 举报
马利 来自手机 中级黑马 2013-3-17 11:14:39
板凳
何仕映 发表于 2013-3-17 08:50
拿Person p = new Person();为例。主函数所在类的加载,就不说了,你肯定也明白。在堆内存中给对象p开辟空 ...

不过倒数第二步,是不是应该是把实例在堆内存的地址发给p变量呀
回复 使用道具 举报
malijava 发表于 2013-3-17 11:14
不过倒数第二步,是不是应该是把实例在堆内存的地址发给p变量呀

是的,不好意思,那里在打字的时候打错了应该是“把堆内存中的地址值赋给栈内存中p变量”
回复 使用道具 举报
若仍有问题,请继续追问或完善问题;没问题的话,请将帖子分类改成【已解决】~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马