非指针型ISA(NONPOINTER_ISA)

在arm64架构下,指针在内存中占8个字节/byte,即64位/bit(1byte=8bit),64比特位中存储的内容有:

  • 标记是否是纯的ISA指针,还是非指针型的NOPOINTER_ISA指针indexed
  • 标记是否有关联对象has_assoc
  • 标记对象是否使用到的C++相关内容,在ARC环境下标记对象是否通过ARC来管理的has_cxx_dtor
  • 标记当前对象的类对象的指针地址shiftcls
  • magic
  • 标记对象是否有弱引用指针weakly_referenced
  • 标记对象是否正在进行dealloc操作deallocating
  • 标记是否有sitetable结构用于存储引用计数has_sidetable_rc
  • 标记对象的引用计数(首先会存储在该字段中,当到达上限后,在存入对应的引用计数表中)extra_rc
从第0位到第15位

从第16位到第31位

32位到47位

48位到最后
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容