美文网首页面试好文
浅谈iOS内存几大区域

浅谈iOS内存几大区域

作者: 最强的小强 | 来源:发表于2019-10-18 16:50 被阅读0次
一、什么是内存

内存是与CPU直接交换数据的内部存储器。它可以随时读写,而且速度很快,作为操作系统或其他正在运行中的程序的临时数据存储介质。

二、iOS内存存放的几大区域
  1. 栈区(stack)
    由编译器自动分配并释放,存放函数的参数值,局部变量等。也就是说我们函数括弧“{}”中定义的变量(但不包括static声明的变量)
    栈是系统数据结构,对应线程/进程是唯一的。优点是快速高效,缺点时有限制,数据不灵活。
// 举例
- (void)test {
     int a= 10;
}
  1. 堆区(heap)
    由程序员手动分配和释放,OC一般通过new方法创建对象 ,一般由程序员分配释放,若程序员不释放,程序结束时,可能由OS回收 。(MRC和ARC)
// 举例
NSObject *obj = [NSObject new];
  1. 全局区(static静态区)
    存放未初始化的全局变量和静态变量, 程序结束后由系统释放。
// 举例
int a;
NSString *str;
static int c = 10;
  1. 文字常量区
    存放已经初始化的常量字符串,程序结束后由系统释放。
// 举例
NSString *str = @"Hello world";
  1. 代码区
    存放函数的二进制代码
三、全部代码
int a; // 全局区
NSString *b; // 全局区
static int  c = 100;  // 全局区
- (void)test {
    int d = 100; // 栈区
    NSObject *obj = [[NSObject alloc]init]; //堆区
    NSString *str = @"123";//常量区
}

写在最后,如果大家有不同的意见,欢迎在评论区评论。

相关文章

  • 浅谈iOS内存几大区域

    一、什么是内存 内存是与CPU直接交换数据的内部存储器。它可以随时读写,而且速度很快,作为操作系统或其他正在运行中...

  • iOS知识点

    1、内存的几大区域 iOS的内存分布区域大致分为:栈区(stack)、堆区(heap)和全局静态区(static)...

  • 内存管理:内存布局,内存几大区域

    内存布局,内存几大区域

  • iOS学习-OC内存管理

    一、内存 1、什么是内存? ios所讲的内存也就是RAM:运行内存 2、内存的几大区域 各个区的作用: 栈区:编译...

  • 内存管理

    使用CADisplayLink、NSTimer有什么注意点? 介绍下内存的几大区域 讲一下你对 iOS 内存管理的...

  • iOS-面试题 内存管理(夯实基础学习笔记-温故知新5)

    使用CADisplayLink、NSTimer有什么注意点? 介绍下内存的几大区域 讲一下你对 iOS 内存管理的...

  • iOS内存的几大区域

    介绍下内存的几大区域 1.栈区(stack) 由编译器自动分配并释放,存放函数的参数值,局部变量等。栈是系统数据结...

  • iOS 内存的几大区域

    参考文章 堆和栈的区别(转过无数次的文章) 几大区域简介 栈区(stack):由编译器管理(分配释放)存放函数参数...

  • iOS 内存的几大区域

    介绍下内存的几大区域 1.栈区(stack) 由编译器自动分配并释放,存放函数的参数值,局部变量等。栈是系统数据结...

  • iOS 内存的几大区域

    栈区(stack)栈区由编译器自动分配并释放,存放函数的参数值,局部变量等。栈是系统数据结构,对应线程/进程是唯一...

网友评论

    本文标题:浅谈iOS内存几大区域

    本文链接:https://www.haomeiwen.com/subject/jxnlyctx.html