iOS【BAT大公司面试题 ~ 非常好的面试题】

30 篇文章 0 订阅
前言:
在朋友群里老是看到好多人因为工作而苦恼,就随手从自己的笔记和网上选取了自己感觉还不错的iOS面试题,和大家分享下,共同学习,互相勉励!现在随着iOS平台开发的职位的增加,笔试、面试也越来越有“套路”,这里我总结了一些BAT面试题(还有网上收集的经典面试题),多数是Objective-C,适合于面试新人,有的借鉴他人的答案,有的是我自己答的,不准确的地方,欢迎私聊或者评论指出。


阿里: 

阿里面经: 点击进入  
个人介绍:
1、说出你印象最深刻的项目?
从你担任的角色,以及你在项目中遇到的问题,如何解决,还有就是项目有哪些比较特色的闪光点!
2、你觉得90后身上具备什么素质和能力?      答案借鉴:猎头:曹利华  
①:交际能力、适应环境能力、技术能力、自省能力、自控能力、意志力
②:自尊、自立、不要好高骛远
③:我们要想成就一件事情,如果没有较坚强的意志力是什么也干不成的。即使是你有过人的本领,如果你缺乏意志力、缺乏恒心,你是不会有大作为的,因为馅饼不会让你轻而易举地拿到,需要你付出比常人更多的汗水,付出比常人更多的心血才能得到。在其间如果你缺少意志力,缺少恒心和决心,见到因难就会害怕。要知道困难是你越害怕它,它却越喜欢你,所以你困难就更多。如果你意志力坚定,那么困难也会害怕你,离你越远,从而你的生活里困难就越少,所以说,意志力与困难是冤家对头,如果你意志力强,那么你的困难就弱,反之,你的困难就强,它使你寸步难行,使你身陷泥滩,无法自拔。我们要有所作为,就要抛弃那些困难的因素,把意志力增强,让它发挥应有的作用。
3、简单的谈谈你的工作经历?
范例:我从大学毕业以后一直从事iOS,到今天已经有X年多了。在这X年中,我只信奉一句话:“项目的成败,取决于你对细节的掌控和礼节,尤其是一些较大项目,往往被一些微小细节所左右。”我自己通过不断的工作磨砺也有了很大提高。一是做事情的目的性更强了,比如现在我无论做什么事都会问自己的目的是什么;二是社交时,比以前更从容了,无论什么场合,商务谈判也好,各类宴会也罢,选择都能够从容应对。自己也越来越喜欢iOS这个职业了。<没有标准答案>
4、最有成就感的一件事是什么?
注意: 不一定要从iOS开发说起,比如:尽我所能,去帮助身边每一位需要帮助的人,是我人生中最快乐的事,也是觉得最有成就感的事情。
5、遇到的最大的挫折是什么?怎么解决的?学到最有价值的东西是什么?
没有标准答案,主要是考察你遇到困难,你会怎么办,考察你学习能力和解决能力!
<就像把你扔进大染缸,你会纯洁的走出来吗?>
6、你的缺点是什么?
不要回答自己执着,做事太过于追求完美,烂大街了......
......后续补充

技术面:

1、你们项目中为什么多线程用GCD而不用NSOperation呢? 你有没有发现国外的大牛他们多线程都是用NSOperation? 你能告诉我他们这样做的理由吗?
关系: ①:先搞清两者的关系,NSOpertaionQueue用GCD构建封装的,是GCD的高级抽象!
②:GCD仅仅支持FIFO队列,而NSOperationQueue中的队列可以被重新设置优先级,从而实现不同操作的执行顺序调整。GCD不支持异步操作之间的依赖关系设置。如果某个操作的依赖另一个操作的数据(生产者-消费者模型是其中之一),使用NSOperationQueue能够按照正确的顺序执行操作。GCD则没有内建的依赖关系支持。
③:NSOperationQueue支持KVO,意味着我们可以观察任务的执行状态。
了解以上不同,我们可以从以下角度来回答
性能: ①:GCD更接近底层,而NSOperationQueue则更高级抽象,所以GCD在追求性能的底层操作来说,是速度最快的。这取决于使用Instruments进行代码性能分析,如有必要的话
②:从异步操作之间的事务性,顺序行,依赖关系。GCD需要自己写更多的代码来实现,而NSOperationQueue已经内建了这些支持
③:如果异步操作的过程需要更多的被交互和UI呈现出来,NSOperationQueue会是一个更好的选择。底层代码中,任务之间不太互相依赖,而需要更高的并发能力,GCD则更有优势
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值