iOS Beijing面试的基本逻辑(2)

作者: 笨驴爱吃胡萝卜 | 来源:发表于2016-06-22 13:57 被阅读1061次
    240425-121011192H274.jpg

    上一篇写了基本的面试流程,这篇从更决定一个人去和留下来谈薪资的问题出发,谈论几个面试问题。

    前提

    就目前市场供需和新项目的数量上看对于技术要求的苛刻是正常的。下面对于这份苛刻代价,总结了下几个对于iOS开发比较重要的问题。
    baidu一查一堆,但是仍然乐此不疲的问着这些问题。

    内存篇

    这个是自从有代码以来避不开的话题,估计当年乔帮主也问过这样的问题,iOS的内存管理问题也是一直问个不停。
    这几次的面试,发现大家对内存的问题集中程度很高,几乎没有新的。

      ARC 和MRC 的区别
      这个是arc 出来的那天起可能注定是个面试必问的问题,从用哪个效率高,到问底层是什么联系,和ARC 是怎么运行实现的。
      strong ,weak ,assign ,等底层的代码,不仅仅是引用系数的变化规则。  
      答案:《Objective-c 高级编程  ios 与osx 多线程和内存管理》的书中有详细的论述。
      http://www.cnblogs.com/ludashi/p/3911666.html?utm_source=tuicool&utm_medium=referral   博客论述
    
      autoReleasePool  问的最多是释放的时机,还有内部源码的实现
      答案 :对于每一个runloop,系统会隐式创建一个AutoRelease pool 。
                这样release pool 会构成一个象CallStack 一样的一个栈式结构。
                在每一个RunLoop结束时,
                当前栈顶的autoReleasePool 会被销毁,
                这样这个Pool里面的所有的object 会被release。
                --------------------------------------
              《Objective-c 高级编程  ios 与osx 多线程和内存管理》
    

    这里涉及到runLoop 的知识点,也是面试必问的知识点,后文会有论述。

    GCD篇

    这里基础知识基本没有问,一些gcd的api 基本不问了。问的最多的用gcd 解决的问题。

          “如何确保多个线程完成的任务 都完成了,再往下运行”
          答案:dispatch_group_wait(group, DISPATCH_TIME_FOREVER);
           //       Do some work after. dispatch_release(group);
         “几种线程处理,为啥用GCD”
           答案:http://blog.csdn.net/lgm252008/article/details/40039445
                     http://www.jianshu.com/p/d09e2638eb27
          从底层到上层分析了为啥用gcd
          gcd 的语法 dispatch queue ,once,after.....等等的gcd 的api 很少问了。问了最多还是对比比较多
    

    标准答案 5
    相识度 5
    难度2

    block 篇

    这里问的最多的是block 关键字的问题,和让你默写一个block,我也没有get 到点

      __block  为了改变block代码块外部的变量。例如:你在外面定义了一个整形变量,想要在block块内改变它,那么,就要用__block 来修饰这个整形变量。
      __weak 是为了防止循环引用(memory cycle),引起内存泄露的问题。 
      __weak不增加引用,__block增加引用
     使用教程:http://my.oschina.net/leejan97/blog/268536
    

    标准答案 5
    相识度 5
    难度2

    终结

    由于在外度假回来后在家研究些东西,更新不够及时。
    下一篇开始写大戏runLoop,网上的文章太多。或者可以歇歇最近很火的react native。好纠结。
    对于最近在找工作的同学想说,太热了。可是招聘市场仍然不太热,不够比上个月还是好一些的。加油

    相关文章

      网友评论

      • iYeso:快写吧 期待那...最近准备面试了

      • iYeso:文章怎么不更新了 期待中
        笨驴爱吃胡萝卜:@greedyDoor 后期会有详细的写,目前不写了
        iYeso:@笨驴爱吃胡萝卜 不写面试的东东了!! :fearful:
        笨驴爱吃胡萝卜:@greedyDoor 最近在写react-native的 东西,怕随时间流逝忘记,后期的文章可能要围绕react-native 来写
      • 透亮心情:这么火的天,还是写很火的react native吧,感觉看了文档还是懵逼状态 :scream:
        透亮心情:@笨驴爱吃胡萝卜 也对哈,runloop,runtime这些
        笨驴爱吃胡萝卜:@透亮心情 哈哈,不过ios 面试问的最多的还是runloop。
      • hauibojek:博主你这篇离你上一篇好久啊~希望多多写点技术文章 :smile:
        笨驴爱吃胡萝卜:@HUswIft 不好意思,最近忙其他的了,帮这个事情给忘记了。正在面壁反思

      本文标题:iOS Beijing面试的基本逻辑(2)

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