对象的内存管理
2015-12-16 18:07
120 查看
//创建一个对象
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]
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]
相关文章推荐
- 如何清除某条SQL的执行计划
- IOS网络开发实战(一)
- IntelliJ Idea 修改编码格式
- ajax跨域的几种解决方法和坑
- MVC 界面开发
- POWERSHELL脚本执行权限
- 第14周 项目1 - 验证算法 - 平衡二叉树算法
- 测试相关,上线相关 经验总结odps sqltask(自己看的)
- 数据库oracle-模块管理
- 获知局域网内他人的上网数据和行为
- Linux SVN常用命令详细结算
- Java并发编程 - Latch和Barrier的区别
- 【LEETCODE】66-Plus One
- 【iOS】六种手势UIGestureRecognizer
- 用Button子类化封装假的分段控件
- MyEclipse过期后重新注册序列号的方式
- segue使用及区别点
- JS中的双向数据绑定及Object.defineProperty方法
- Javascript面向对象编程(二):构造函数的继承
- IOS网络开发(一)