昨晚经过内心的一片煎熬,接到了腾讯的面试安排电话,心里激动地要死,不过很快就平静下来,然后就慌了起来。想到我还什么都没有准备啊,不能在腾讯这里就挂掉啊!!接着我就回到了寝室,打开了百度进行面试的搜索以及iOS开发基础问题的搜索。什么属性修饰符啊,什么代理啊......一个晚上全部看了一遍,不过我也没有开心,因为我知道我肯定会忘的。最意外的收获就是跟在腾讯公司实习过的学长夜聊了2个小时聊到半夜一点钟,感觉像是打开了新世界的大门,我会好好感谢他的。
不说题外话了,来吧,今天的面试题就在下面:
1、说说你做过的项目,选出一个你最有经验的说,还有你克服了哪些难点。
2、说说iOS内存管理是怎么样实行的?
3、说说block对内存的影响?说说怎么避免循环引用?说说如果block代码块里面代码过长如果一直用weak会有什么影响?
4、你用过autoreleasepool吗?在哪里用到过举个栗子,autoreleasepool的实现原理。
5、说说copy、strong、asign。什么时候用strong,什么时候用copy,什么时候用assign?assign可以修饰delegate吗?如果用了assign修饰会有什么影响?
6、说说category和extension的区别?
7、#include和#import的区别?#include在C语言里面怎么防止重复导入?
8、copy和mutableCopy
9、NSDictionary的底层实现原理
10、如果你想把一个对象存在NSDictionary里面,使外面的对象释放时,dictionary里面也销毁该怎么实现?
11、用算法模拟NSDictionary的实现
就这些问题,可能不是太难,但是对于学生的我来说还是有点难度,有几个问题没答起,对自己很失望,希望能有个好结果!!!