- 1
- 0
- 约4.26千字
- 约 6页
- 2026-10-12 发布于河北
- 举报
iOS基础面试题及详细答案(真实职场版)
一、Objective-C基础核心题
1.简述OC中的堆和栈的区别
堆和栈是程序内存分配的两种核心方式,在iOS开发中区别非常明确:
栈内存由系统自动分配、自动释放,存储局部变量、基本数据类型、指针变量地址。栈空间固定、容量小、存取速度快,线程独享,不会出现内存泄漏。函数执行结束后,栈内变量立即销毁。
堆内存需要开发者手动管理(MRC)或通过ARC自动管理,所有OC对象都分配在堆上。堆空间灵活、容量大、存取速度慢,全局共享。堆内存如果持有关系处理不当,会出现内存泄漏、野指针问题。
简单总结:变量地址在栈,对象本体在堆。
2.ARC的原理是什么?ARC是完全不用管内存吗?
ARC是自动引用计数机制,本质是编译器在编译阶段自动帮我们插入retain、release、autorelease内存管理代码,不需要开发者手动书写内存管理方法。
ARC并不是完全不用管理内存,只是简化了手动操作。依然需要处理循环引用、野指针、过度持有等问题。ARC只管理堆上OC对象的内存,不管理基本数据类型、CoreFoundation、C语言结构体等内存。
常见ARC需要手动处理的场景:block循环引用、代理属性循环引用、NSTimer常驻引用、CF对象桥接后的内存释放。
3.讲一下strong、weak、assign、copy的区别及
您可能关注的文档
最近下载
- 精细陶瓷(先进陶瓷、先进技术陶瓷) 测定半导体光催化材料光催化活性试验方法 溶解氧消耗法编制说明.pdf VIP
- 2025年河北机关事业单位工人技能等级考试(渠道维护工·技师)历年参考题库含答案详解(5套题).pdf VIP
- 湘少版四年级英语上册课件AssessmentⅠ.pptx VIP
- 教科版(新教材)小学五年级科学上册第二单元《工具与技术》每课时精品教案汇编(含八个精品教案).docx VIP
- 纳米技术——二氧化硅纳米材料——液相色谱用纳米多孔二氧化硅微粒的特性规范和测量方法 标准立项发展报告.docx VIP
- 2023侵袭性曲霉病的诊断与治疗指南解读PPT课件.pptx VIP
- 口腔种植牙修复牙列缺损的临床疗效分析.doc VIP
- (2026年)危重患者侵袭性肺曲霉病诊断与治疗PPT.pptx VIP
- 神经外科康复早期介入与护理配合.ppt VIP
- 血小板及冷沉淀的临床应用与自体输血.pdf VIP
原创力文档

文档评论(0)