常用面试要点

作者: 52xpz | 来源:发表于2017-02-07 17:23 被阅读935次

    工作中招人时就需要面试,受百度和腾讯文化的影响,我的个人面试风格随性但是严格,我很注重面试者的基础功以及知识的深度和广度,一个人良好的工作能力体现在两方面:硬实力和软实力。硬实力指自己的专业技术水平、学习能力;软实力包括团队协作、沟通、分享、抗压能力等。现在总结一下我个人面试别人的题库及要点。

    一、硬实力(专业技术水平面试要点)

    1、iOS写UI有三种方式,即storyboard、xib、纯代码,比较一下三种方式的优缺点以及适用场景。

    2、UITableView、UICollectionView如何实现点击选中后过一会消失效果。

    3、UITableView、UICollectionView的复用机制以及用model给cell UI赋值需要注意什么。

    4、UITableView如何实现cell自动算高。

    5、pushViewController、presentViewController原理及区别

    6、如何查找某一导航栈中是否有某一个特定VC。isKindOfClass和isMemberOfClass区别。

    7、发现VC不走dealloc,如何检查原因。

    8、block在什么时候会造成循环引用,如何避免循环引用以及weakSelf、strongSelf的区别。

    9、通知中心添加事件监听需要注意什么?如果添加监听后忘记移除监听会有什么样的坑?通知中心是什么设计模式的实现,如何实现这种模式?

    10、postNotification方法是同步的还是异步的?

    11、以方法timerWithTimeInterval创建NSTimer对象时会retain target,如何避免循环引用。

    12、strong、weak、assign、copy属性的区别以及原理,retain、release自动引用技术是如何实现的。

    13、对一个对象调用copy或者mutableCopy方法,这个对象必须实现什么协议?浅拷贝与深拷贝的区别。

    14、类别如何添加属性?OC没有多重继承,那如何实现多重继承呢?

    15、OC中实现多线程有哪几种方式,每种方式的优缺点以及使用场景。

    16、NSOperationQueue和dispatch队列的实现原理是什么。

    17、iOS多线程同步技术。

    18、客户端与后台数据传输方式通常有XML,JSON,pb(protocol buffer),从流量和解析效率方面分析一下这三种方式的优缺点。

    19、JSON、Model如何互转?用过那些第三方库,如果用过MJExtension,那底层是怎么实现的?

    20、如何遍历一个类的属性?

    21、OC的消息转发机制。

    22、http协议Get和Post的区别,NSUrlConnection和NSUrlSession技术,AFNetworking的实现原理,如果用过YTKNetwork,他是怎么封装AFNetworking的。

    23、SDWebImage实现原理,缓存机制、缓存大小、缓存天数、缓存淘汰算法。

    24、http请求参数校验实现方式,App网络请求基类一般会带什么公共参数?

    25、hash算法(md5,crc,sha,base64),对称加密算法与非对称加密算法。

    26、网络优化之就近接入。

    27、网络优化之不同网络类型配置调优。

    28、网络优化之IP连接策略(tcp、http自动切换)。

    28、网络优化之防dns劫持。

    29、网络优化之分片、断点续传策略。

    30、网络优化之应用层ack。

    31、网络优化之超时重传策略。

    32、网络优化之数据协议选择、流量控制。

    33、网络传输数据加解密、怎么网络传输数据的缓存来优化UI的显示。?

    34、数据存储格式有XML、JSON、Archiver、数据库等几种,比较一下各自的优缺点。

    35、NSUserDefault、Archiver、plist、SQLite、FMDataBase、Core Data存储方式的优缺点以及应用场景。

    36、key-value数据库的应用,比如google level-db。

    37、数据存储优化手段。

    38、iOS如何加载h5页面。

    39、UIWebView、WKWebView如何实现进度条功能。

    40、h5与App如何实现互相调用。

    41、WebViewJavascriptBridge的实现原理。

    42、api hook原理及应用,如何防止按钮重复点击。

    43、检测内存泄露方法。

    44、安装包瘦身方法。

    45、crash收集方法。

    46、App打日志方法、CocoaLumberjack实现原理。App埋点实现原理。

    47、常用的设计模式。

    48、MVC、MVVM模式。

    49、ReactiveCocoa使用和原理

    50、ReactNative使用和原理

    51、操作系统原理。如线程(进程)管理、调度、同步,内存管理等

    52、数据结构与算法。如链表、栈、队列、堆、二叉树等实现;排序、查找、hash、递归、二叉树等相关算法。

    53、组件解耦方法。

    54、动态升级技术。

    55、UI层的设计。

    56、网络层的设计。

    57、数据存储层的设计。

    58、性能优化手段。

    二、软实力面试要点。

    软实力属于比较发散性的面试,一般我会围绕以下方面来问

    1、所在团队是怎么进行产品迭代的,项目流程是怎么样的。

    2、平常会看什么书、最近在看什么书,是否做过技术分享。

    3、自己的职业规划是怎么样的。

    4、自己做过的最有成就感的事情是什么。

    5、如果你是一个管理者(比如你是leader),你会如何来组建和管理这个团队?

    相关文章

      网友评论

      • SuperBoy_Timmy:后面几个挺好,前面感觉问的太细了。感觉面试不要老考察记忆能力。一般轻易能查出来的几个就行,框架原理结构,运行时机制,二分,排序,递归简单算法,优化方案,与h5交互相关。这样的问题我觉得比较好。🤓
      • 萧城x:2、UITableView、UICollectionView如何实现点击选中后过一会消失效果。
        这个用定时器?
        52xpz:@低调做事 ,在didSelectRowAtIndexPath方法里面反选dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [tableView deselectRowAtIndexPath:indexPath animated:YES];
        });
      • 漫步的小蚂蚁:还可以,后面有几个硬实力问题,其他的都还好吧,
      • 吕氏春秋有云:有答案吗?
        吕氏春秋有云:@52xpz 好吧,我先慢慢研究研究,还望不吝赐教:blush:
        52xpz:@HHPPPZZZZ 答案留给有心人去研究,当然也可以留言讨论
      • 834f65bae4f0:默默记下~

      本文标题:常用面试要点

      本文链接:https://www.haomeiwen.com/subject/sgypittx.html