黑马程序员技术交流社区
标题: 面试前准备的几个问题 [打印本页]
作者: paradise6 时间: 2015-8-6 07:40
标题: 面试前准备的几个问题
[size=10.5000pt]1. 深复制和浅复制
浅复制只是复制了指向对象的指针,深复制是复制了一个完全相同的独立对象。
浅复制好比人和影子,人完蛋后影子也不存在了;
深复制好比人和克隆人,人完蛋后克隆人照常或者。
[size=10.5000pt]2. 强指针和弱指针
在ARC中引入了强指针和弱指针
weak:代理和UI控件使用弱指针
Strong:其他OC对象使用强指针
在非ARC中strong就相当于retain
[size=10.5000pt]3. 野指针和僵尸对象
僵尸对象:内存已经被回收的对象,僵尸对象不能再被使用
野指针:指向僵尸对象的指针,给野指针发送消息会报错
[size=10.5000pt]4. 代理
A想完成某事,但不愿自己去做。那么将要做的事也就是要实现的方法定义在一个协议中。任何遵守了这个协议的对象都可以成为A的代理。遵守这个协议的代理就要实现协议中的方法。
A拥有一个遵守协议的代理属性。
如果A要完成某事,调用代理的方法即可。
[size=10.5000pt]5. 单例模式
单例模式可以确保一个类只有一个实例对象。目前我所学到的只有
NSFileManager 无论创建多少次,返回的还是同一个对象。
[size=10.5000pt]6. block
跟基本数据类型一样,block也是一种数据类型;
block是用于封装代码段
与函数的调用方式一样
[size=10.5000pt]7. release/autorelease
1> release: 手动将OC对象的引用计数器-1;
autorelease: autorelease过的对象会放在一个自动释放池中,当自动释放池被销毁时,会对池子中的所有对象做一次release操作。
2> 使用release需要考虑对象被释放的时间,要在对象被释放前对其操作,否则会出现野指针和僵尸对象;
使用autorelease不用再考虑对象被释放的时间,只要在自动释放池中操作对象,都不会出现野指针和僵尸对象。
3> release可以精确控制对象释放的时间,防止占用内存过大,造成程序闪退;
autorelease无法精确控制对象释放的时间,如果对象占用内存过大,会造成程序闪退;如果对象内存很小,没有影响。
[size=10.5000pt]8. property 参数
assign:用于非OC对象
retain:用于OC对象
copy:用于NSString和NSMutableString
readOnly:只读
readWrite:读写
atomic:原子性,性能低
nonatomic:原子性,性能高
setter = :更改set方法名
getter = :更改get方法名(一般用于bool类型因为bool类型方法名一般以is开头)
循环引用时,一端用retain一端用assign
ARC
strong:相当于非ARC中的retain,用于其他OC对象
weak:用于代理,UI控件
循环引用时,一端用strong一端用weak
[size=10.5000pt]9. 懒加载
防止对象被创建多次占用内存过大影响系统性能,那么重写get方法
用到的时候再去判断对象是否创建,如果没有创建过才去创建新对象。
[size=10.5000pt]10. include和import的区别
import和include都是用于 拷贝文件内容
import可以自动纺织文件被拷贝多次
[size=10.5000pt]11. 条件编译
预处理指令包括宏定义、条件编译和文件包含
条件编译一般用于文件包含中
判断一个宏是否定义,如果没有定义那么定义这个宏,如果已经定义了就不会在拷贝文件。
[size=10.5000pt]12. 内存管理原则
每个对象中都有一个默认的引用计数器,用来表示目前有几个对象在使用这个对象。
dealloc像死者遗言,retain过的对象要在这里做一次release操作,在代码末尾一定要调回super dealloc。
作者: hejunxin 时间: 2015-8-6 08:14
留着以后用
作者: 刘彦麟 时间: 2015-8-6 21:47
学习了···谢谢···
作者: 我的呸 时间: 2015-8-6 22:07
谢谢分享
作者: lzfree 时间: 2015-8-6 22:13
thanks for ur share
作者: noway190 时间: 2015-8-6 22:22
谢谢分享,留着以后用
作者: QQ2544 时间: 2015-8-6 23:14
好帖子,收藏下
作者: 小林儿 时间: 2015-8-6 23:29
不错~~ 这就是经验
作者: tt3tt3tt 时间: 2015-8-6 23:34
这是就业班的面试题?
作者: 和夏一样狂热 时间: 2015-8-6 23:41
给力......对我们有很大的帮助 希望大家都能找到理想的工作
作者: paradise6 时间: 2015-8-7 08:01
这是我面试前准备的 这里面问题只有单例模式和懒加载没有问 其他都问了
作者: paradise6 时间: 2015-8-7 08:03
这个内容不完全是我的面试题 这是我准备的 单例模式和懒加载都没问到
还加了一个内部函数和外部函数 @class的应用 还有什么想不起来啦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |