在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位到最后