美文网首页
03-对象在内存中如何储存

03-对象在内存中如何储存

作者: jensen1in | 来源:发表于2022-07-23 16:46 被阅读0次

    例如:

    Person *p = [Person new];

    • person *p 会在栈中申请一块空间用于存放p指针变量,由于p是指针变量,所以p储存的是地址

    • [Person new] 会在堆中申请一块空间用于创建Person类的对象,对象除了自身属性外还包含了isa指针,isa存放的是对象的类在代码区中的地址,初始化对象的属性基本数据类型的初始值为0如:int i = 0 ,objc的指针类型初始值为nil,如:NSString *str = nil,c语言的指针类型初始值为NULL,如:int *p = NULL,(其实nil和NULL都是一个宏 等价于 0)最后返回对象的地址

    • 对象只有属性而没有方法,因为每一个类的方法都是一样,所以对象的方法不保存在堆中,调用方法是通过isa指针找到类再调用类的方法

    相关文章

      网友评论

          本文标题:03-对象在内存中如何储存

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