面试题1:
1.CoreFundation框架中的CFRelease函数作用是什么?
A. 让对象的引用计数器减一 B.直接释放指针指向的堆区域数据
答案B
面试题2:
2.CFRelease函数和free函数有什么区别?原因是什么?
答案:在CoreFundation框架中提供的CFRelease函数专门用来释放CoreFundation的结构体指针。CFRelease和free都是释放内存空间。但是
free有可能存在内存泄露,释放不干净。
因为:CoreFundation框架中的结构体内部也许还有指针指向堆区域,如果直接free会导致那部分堆区域无法释放,引起内存泄露。
面试题3:
线程和进程的区别?
1. 每个应用程序都会一一对应一个进程,在内存中会占据一块存储空间
PID就是进程ID的. 从上图可以看出每一个程序运行的时候, 在内存中多会对应的进程ID.
2. 进程在执行任务的时候,会开启线程,一条线程就代表一个任务,进程中可以开启多条线程, 所以可以同时执行多个任务
面试题4:
集成测试通常都有那些策略?
1、在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;
2、各个子功能组合起来,能否达到预期要求的父功能;
3、一个模块的功能是否会对另一个模块的功能产生不利的影响;
4、全局数据结构是否有问题;
5、单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。