08 一套iOS底层试卷
一、选择题 ⚠️ 有单选有多选哦⚠️
1.1 在LP64下,一个指针的有多少个字节
1.2 一个实例对象的内存结构存在哪些元素
1.3 下面sizeof(struct3) 大小等于
1.4 下列代码: re1 re2 re3 re4 re5 re6 re7 re8输出结果
1.5 (x + 7) & ~7 这个算法是几字节对齐
1.6 判断下列数据结构大小
1.7 元类的 isa 指向谁, 根元类的父类是谁
1.8 查找方法缓存的时候发现是乱序的, 为什么? 哈希冲突怎么解决的
1.9 消息的流程是
1.10 类方法动态方法决议为什么在后面还要实现 resolveInstanceMethod
二、判断题
2.1 光凭我们的对象地址,无法确认对象是否存在关联对象
2.2 int c[4] = {1,2,3,4}; int d = c; c[2] = (d+2)
2.3 @interface LGPerson : NSObject{ UIButton *btn } 其中 btn 是实例变量
2.4 NSObject 除外 元类的父类 = 父类的元类
2.5 对象的地址就是内存元素的首地址
2.6 类也是对象
三、简单题
3.1 怎么将上层OC代码还原成 C++代码 分值10分
3.2 怎么打开汇编查看流程,有什么好处 ? 分值10分
3.3 x/4gx 和 p/x 以及 p *$0 代表什么意思 分值10分
3.4 类方法存在哪里? 为什么要这么设计? 分值10分
3.5 方法慢速查找过程中的二分查找流程,请用伪代码实现 分值10分
3.6 ISA_MASK = 0x00007ffffffffff8ULL 那么这个 ISA_MASK 的算法意义是什么? 分值10分
3.7 类的结构里面为什么会有 rw 和 ro 以及 rwe ? 分值10分
3.8 cache 在什么时候开始扩容 , 为什么? 分值10分
3.9 objc_msgSend 为什么用汇编写 , objc_msgSend 是如何递归找到imp? 分值10分
3.10 一个类的类方法没有实现为什么可以调用 NSObject 同名对象方法 分值10分
Last updated