OC-copy
一,堆与栈
1,栈区,stack: 后进先出,由编译器自动分配并释放,一般存放函数的参数值、局部变量
2,堆区,heap:先进先出,由程序员分配和释放
3,全局区,静态区:程序结束后由系统释放,
4,寄存区:保存栈顶指针和指令指针
5,文字常量区
6,程序代码区,存放函数的二进制代码
链表:头指针head,
栈区:main中有i和j变量 i 地址比 j 地址 大
栈区大小为1M
堆:(系统内存和虚拟内存)
1,所有应用程序共享
2,所有堆中的内存分配,都是操作系统负责的
3,操作系统使用链表来维护所有已经分配的内存
4,堆中的内存释放,程序通知系统释放内存。引用计数为0,会被立即释放
5,堆中的所有空间,都是“匿名”访问的,所有匿名访问都是通过指针来访问
在OC中没有垃圾回收机制
NULL表示地址为0
nil 是地址指向NULL的空对象
nil可以调用任何方法不会报错
copy:建立一个副本,互不干扰
可变不可变 是 针对 Foundation 框架的数据类型
对于自定义类 copy就是可变
arrayM M就是可变的意思
可变copy为可变或不可变 地址都会变
不可变copy为不可变(浅复制) 地址不变
NSMutableArray *arrayM = [NSMutableArray arrayWithObjects:@(), @(), nil];
NSLog(@"%@ %p %@", arrayM, arrayM, arrayM.class); //1,可变 =》 可变
NSMutableArray *aM = [arrayM mutableCopy];
NSLog(@"%@ %p %@", aM, aM, aM.class);
//2,可变 =》 不可变
NSArray *a = [arrayM copy];
NSLog(@"%@ %p %@", a, a, ,a.class);
OC-copy的更多相关文章
- OC copy mutableCopy, 浅拷贝,深拷贝
copy与mutableCopy都是深拷贝,区别是mutableCopy拷贝出的对象是可变的. OC对象基本都是通过指针访问,所以一般情况下,通过对指针的赋值都是浅拷贝,即只是拷贝了一份对象的指针,对 ...
- OC Copy基本使用(深拷贝和浅拷贝)
首先,什么是copy? Copy的字面意思是“复制”.“拷贝”,是一个产生副本的过程. 常见的复制有:文件复制,作用是利用一个源文件产生一个副本文件. 特点:1.修改源文件的内容,不会影响副本文件: ...
- iOS - OC Copy 拷贝
前言 copy:需要先实现 NSCopying 协议,创建的是不可变副本. mutableCopy:需要实现 NSMutableCopying 协议,创建的是可变副本. 浅拷贝:指针拷贝,源对象和副本 ...
- OC Copy and MutableCopy的使用
#import <Foundation/Foundation.h> @interface Student : NSObject <NSCopying> // copy代表set ...
- OC Copy自定义类
- OC Copy和Property
- OC Copy和内存管理
- HEC-ResSim原文档
HEC-ResSim Reservoir System Simulation User's Manual Version 3.1 May 201 ...
- OC中copy的使用
@property内存管理策略的选择 1.非ARC 1> copy : 只用于NSString\block: 2> retain : 除NSString\block以外的OC对象: 3&g ...
- 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
读前小提示:对于深浅复制有一个清楚的了解,对于学习oc的朋友来说,至关重要.那么首先,我们要明白深浅复制是如何定义的呢.这里为了便于朋友们理解,定义如下. 浅 复 制:在复制操作时,对于被复制的对象的 ...
随机推荐
- eclipse安装ADT
ADT安卓开发工具安装 ADT(Android Development Tools)安卓开发工具,是安卓在Eclipse IDE环境中的开发工具,为Android开发提供开发工具的升级或者变更,简单理 ...
- jquery读取iframe子页面和父页面的处理
1. jquery 在iframe子页面获取父页面元素代码如下: $("#objid", parent.document) 2. jquery在父页面 获取iframe子页面的元素 ...
- Hive UDF开发实例学习
1. 本地环境配置 必须包含的一些包. http://blog.csdn.net/azhao_dn/article/details/6981115 2. 去重UDF实例 http://blog.csd ...
- Redis的复制(Master/Slave)
是什么 : 也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 能干嘛: 读写分离,容灾恢复 怎么玩: 1 ...
- hadoop1.1.2安装过程
实验环境:VMware 10.0.1+CentOS-6.6-i386 +jdk-6u24-linux-i586+hadoop-1.1.2.tar.gz 普通用户:michael 集群规划:1台mast ...
- 【poj2114】 Boatherds
http://poj.org/problem?id=2114 (题目链接) 题意 给出一棵树,问是否存在两点间的距离为K. Solution 点分治嘛,跟poj1741差不多.. 然而为什么我调了一个 ...
- codeforces 613D:Kingdom and its Cities
Description Meanwhile, the kingdom of K is getting ready for the marriage of the King's daughter. Ho ...
- codevs1138 聪明的质监员
题目描述 Description 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n 个矿石,从1到n 逐一编号,每个矿石都有自己的重量wi 以及价值vi.检验矿产的流程是:见图 ...
- list去除并且把值相加
package list; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import ja ...
- HDU 5738 Eureka
传送门 题目大意: 给出平面上的$n$个点,每个点有唯一的标号($\text{label}$),这$n$个标号的集合记作$S$,点可能重合.求满足下列条件的$S$的子集$T$的数目: 1. $|T|\ ...