黑马程序员技术交流社区

标题: Java构造函数问题 [打印本页]

作者: 马利    时间: 2013-3-17 00:01
标题: Java构造函数问题
本帖最后由 malijava 于 2013-3-17 16:14 编辑

构造函数在创建对象等实体的时候,返回实体的内存原理是什么样的?
作者: 何仕映    时间: 2013-3-17 08:50
拿Person p = new Person();为例。主函数所在类的加载,就不说了,你肯定也明白。在堆内存中给对象p开辟空间,建立特有属性被默认初始化后,然后就被显示初始化,接着是这一类共有的属性被构造代码块初始化,然后就是根据你定义的构造函数就行初始化。下面是我总结对象的建立过程,你可以看下,希望对你有帮助。

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

对象建立过程.JPG

作者: 马利    时间: 2013-3-17 11:11
要的正是初始化前的过程,多谢你的回答
作者: 马利    时间: 2013-3-17 11:14
何仕映 发表于 2013-3-17 08:50
拿Person p = new Person();为例。主函数所在类的加载,就不说了,你肯定也明白。在堆内存中给对象p开辟空 ...

不过倒数第二步,是不是应该是把实例在堆内存的地址发给p变量呀
作者: 何仕映    时间: 2013-3-17 11:17
malijava 发表于 2013-3-17 11:14
不过倒数第二步,是不是应该是把实例在堆内存的地址发给p变量呀

是的,不好意思,那里在打字的时候打错了应该是“把堆内存中的地址值赋给栈内存中p变量”
作者: 陈丽莉    时间: 2013-3-17 13:25
若仍有问题,请继续追问或完善问题;没问题的话,请将帖子分类改成【已解决】~




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