对象的内存管理

来源:互联网 发布:淘宝上的俄罗斯巧克力 编辑:程序博客网 时间:2024/06/02 13:08

//创建一个对象

person *p = [person new];

//初始化

p-> _name =@"柯蓝";

p->_age = @"13";

NSLog(@" 姓名:%@name,    年龄:%d age",p->_name,p->age);

//申请内存空间

//给实例化初始化

//返回空间地址

//1.申请的内存空间在存放在哪里?

new 申请的内存空间存放在堆区(程序动态分配的内存空间)

当new的时候内存布局是怎样的

//初始化的时候

如果实例化对象是基本数据类型,此时初始化为零

如果实例化对象是OC字符串内型,初始化为NULL


//2.实例化对象又保存在什么地方?

堆区

P(指针变量)存放在栈区

//3.对象方法保存在什么地方

代码区

为什么使用[p run]就可以调用方法,怎么调用的/

首先找P对应的堆区空间,然后再找_isa指针, _isa找到代码去的空间,在空间找run 方法;

4.一个类可以创建多个对象

person *p1 = [person new];

p1->_name = @"贝娜";

p2->_age = @"33";

NSLog(@" 姓名:%@ , 年龄:%d",p1->_name,p1->_age);

[p1 run]

0 0
原创粉丝点击