黑马程序员技术交流社区

标题: 关于对象的存储细节 [打印本页]

作者: Jusive    时间: 2015-10-18 22:19
标题: 关于对象的存储细节
Person *p = [Person new];在创建完之后要做的三件事分别是什么?
作者: CcrazyOne    时间: 2015-10-18 22:19
1.申请一块内存空间在堆区
2.初始化实例变量
3.返回对象首地址

恩我的答案应该是标准的了。。。
作者: CcrazyOne    时间: 2015-10-18 22:22
1.申请一块内存空间在堆区
2.初始化实例变量
3.返回对象首地址

作者: Jusive    时间: 2015-10-18 22:28
CcrazyOne 发表于 2015-10-18 22:22
1.申请一块内存空间在堆区
2.初始化实例变量
3.返回对象首地址

兄弟回答一遍就行了。。。
作者: CcrazyOne    时间: 2015-10-18 22:29
Jusive 发表于 2015-10-18 22:28
兄弟回答一遍就行了。。。

刚网络卡了。。。
作者: cchjywall    时间: 2015-10-22 20:30
实例化 分配堆 引向栈
作者: cchjywall    时间: 2015-10-22 20:35
你要区分是函数内部的实例还是类的实例
作者: LDstruggling    时间: 2015-10-28 22:20
顶贴是一种态度!!!
作者: ly631960324    时间: 2015-11-14 23:49
Person p = new Person();创建对象过程在内存中的执行步骤
1)Person.class文件加载进方法区
2)声明Person类型的引用p
3)在堆内存中开辟空间创建对象
4)对对象中的属性进行默认初始化
5)进行显示初始化
6)构造方法进栈,对对象中的属性进行赋值,构造方法弹栈
7)将对象的地址值赋给变量P




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