您的位置:首页 > 职场人生

搜狗面试总结(一面)

2016-10-31 10:47 357 查看
前两天去搜狗面试,虽然荣幸的过了一面,但是二面还是很担心的😟

总结一下 一面的题 把 没有一家公司会面时一个人二个多小时吧 有点坑

不过大公司面试 牵扯到很多 底层 算法的问题,还有一些智商的问题。总之、各自安好吧

1, aoturelsepoll 什么时候用?

2, 自动释放时系统都做了那些功能

3, 第一次加载 缓存了 返回再进入时 为什么重复加载了

4, 都用过哪些 运行时 改变了什么 ?

5, block 使用时 要注意什么

6, 修饰词 有哪些 什么时候用

7, GPUimage的使用

8,在copy时 NSarraycopy 和 nsmutarblearraycopy 的区别

9,观察者模式 的分类?

[※]@property中有哪些属性关键字?

[※]weak属性需要在dealloc中置nil么?

[※※]@synthesize和@dynamic分别有什么作用?

[※※※]ARC下,不显式指定任何属性关键字时,默认的关键字都有哪些?

[※※※]用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?

[※※※]@synthesize合成实例变量的规则是什么?假如property名为foo,存在一个名为_foo的实例变量,那么还会自动合成新变量么?

[※※※※※]在有了自动合成属性实例变量之后,@synthesize还有哪些使用场景?

[※※]objc中向一个nil对象发送消息将会发生什么?

[※※※]objc中向一个对象发送消息[obj foo]和objc_msgSend()函数之间有什么关系?

[※※※]什么时候会报unrecognized selector的异常?

[※※※※]一个objc对象如何进行内存布局?(考虑有父类的情况)

[※※※※]一个objc对象的isa的指针指向什么?有什么作用?

[※※※※]下面的代码输出什么?

Objective-C

1234567891011 @implementation Son : Father- (id)init{self= [superinit];if(self){NSLog(@"%@",NSStringFromClass([selfclass]));NSLog(@"%@",NSStringFromClass([superclass]));}returnself;}@end

[※※※※]runtime如何通过selector找到对应的IMP地址?(分别考虑类方法和实例方法)

[※※※※]使用runtime Associate方法关联的对象,需要在主对象dealloc的时候释放么?

[※※※※※]objc中的类方法和实例方法有什么本质区别和联系?

[※※※※※]_objc_msgForward函数是做什么的,直接调用它将会发生什么?

[※※※※※]runtime如何实现weak变量的自动置nil?

[※※※※※]能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?

[※※※]runloop和线程有什么关系?

[※※※]runloop的mode作用是什么?

[※※※※]以+ scheduledTimerWithTimeInterval...的方式触发的timer,在滑动页面上的列表时,timer会暂定回调,为什么?如何解决?

[※※※※※]猜想runloop内部是如何实现的?

[※]objc使用什么机制管理对象内存?

[※※※※]ARC通过什么方式帮助开发者管理内存?

[※※※※]不手动指定autoreleasepool的前提下,一个autorealese对象在什么时刻释放?(比如在一个vc的viewDidLoad中创建)

[※※※※]BAD_ACCESS在什么情况下出现?

[※※※※※]苹果是如何实现autoreleasepool的?

[※※]使用block时什么情况会发生引用循环,如何解决?

[※※]在block内如何修改block外部变量?

[※※※]使用系统的某些block api(如UIView的block版本写动画时),是否也考虑引用循环问题?

[※※]GCD的队列(dispatch_queue_t)分哪两种类型?

[※※※※]如何用GCD同步若干个异步调用?(如根据若干个url异步加载多张图片,然后在都下载完成后合成一张整图)

[※※※※]dispatch_barrier_async的作用是什么?

[※※※※※]苹果为什么要废弃dispatch_get_current_queue?

[※※※※※]以下代码运行结果如何?

Objective-C

123456789 - (void)viewDidLoad{[superviewDidLoad];NSLog(@"1");dispatch_sync(dispatch_get_main_queue(),^{NSLog(@"2");});NSLog(@"3");}

[※※]addObserver:forKeyPath:options:context:各个参数的作用分别是什么,observer中需要实现哪个方法才能获得KVO回调?

[※※※]如何手动触发一个value的KVO

[※※※]若一个类有实例变量NSString *_foo,调用setValue:forKey:时,可以以foo还是_foo作为key?

[※※※※]KVC的keyPath中的集合运算符如何使用?

[※※※※]KVC和KVO的keyPath一定是属性么?

[※※※※※]如何关闭默认的KVO的默认实现,并进入自定义的KVO实现?

[※※※※※]apple用什么方式实现对一个对象的KVO?

[※※]IBOutlet连出来的视图属性为什么可以被设置成weak?

[※※※※※]IB中User Defined Runtime Attributes如何使用?

[※※※]如何调试BAD_ACCESS错误

[※※※]lldb(gdb)常用的调试命令?

其实大公司面试 还是不错的,有咖啡,有饮料 有茶水间,气氛向咖啡厅谈事情 二轮是笔试 加油!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: