网易有道iOS客户端实习一面面经[已OC]

  1. 自我介绍

  2. 会OC吗?copy strong aasign这些?

    • 不太熟悉
  3. 那Java里也有引用计数,大概讲下?

    • 答:啊...不太熟悉Java...
    • 问:不好意思看错了,你写的是JavaScript...
    • 答:没事,引用计数都是一样的,就是blabla..
  4. 项目里这个手动切换主题是怎么实现的?

    • 答:就是建了一个主题类,然后这个类在全局有一个单例实例,在SwiftUI里作为一个环境变量,实例变量改变的时候就会自动更新UI。
  5. (简历里写了)Docker,为什么会用到?

    • 答:主要是部署各种服务的时候用起来比较方便吧,比如部署一个后端服务,或者数据库的时候,他能够不影响外部的系统环境。
    • 问:(就这?)
    • 答:还有就是...他可以很方便地利用Dockerfile提供一样的环境给程序吧
  6. 消息循环是什么?简单讲下?

    • 答:Runloop吗?
    • 问:应该是一个东西吧
    • 答:runloop对应线程、runloop五个mode observer source timer blabla...
  7. 你刚刚说了点击事件,讲讲传递链和响应链?

    • 答:blabla
  8. 泛型?

    • 答:主要就是可以把类型也作为参数传递进函数吧,比如有一个compare函数,有了泛型之后就可以同时接受Int和String类型的参数
    • 问:那除了你刚刚说的代码复用,还有什么功能吗?
    • 答:这个就不太清楚了...
  9. 讲下UIKit里常用的一些控件?

    • 答:不是很熟悉UIKit
    • 问:没事,说说你知道的
    • 答:UILabel显示文字嘛,然后UISementedControl,然后有个UIButton..
  10. SwiftUI里有一个绑定机制,了解吗?

    • 答:Combine?这个我没有全面的了解过,但项目里有一个延时的时候我试图用过Timer来实现,这个就是基于Combine的一个Publisher
  11. 你博客里的Git工作流和简历上的Git-flow,是一个东西吗?

    • 答:不是一个东西,博客里是小组合作的时候,因为没有生产环境,就对Git-flow做了一些精简,然后利用Gitlab的功能做的一个简化版的开发流程。
    • 问:那大概讲讲Git-flow
    • 答:blabla...
    • 问:常用的Git操作都讲讲吧
    • 答:add, commit, push, pull, reset, rebase, merge
    • 问:那rebase和merge有什么区别
    • 答:blablabla...
  12. 常用的锁有什么?

    • 答:主要是自旋锁和互斥锁吧。自旋锁主要就是一个while循环,然后不断的忙尝试,互斥锁也是一个while循环,然后如果拿不到资源,操作系统就会让他进入block状态,直到资源可用,再调入ready-running再次尝试。然后自旋锁主要应用在自己用的频率比较高,但是其他线程很少用到的资源,因为会一直使用CPU,互斥锁就是用在自己用的频率比较低的资源的情况。

    • 问:你刚刚提到使用场景,自旋锁是用在什么情况下?

    • 答:就是用在自己用的频率比较高,其他现场很少用到的资源

    • 勘误:表述可以改进下,如果其他线程一直在用的资源,就会造成CPU忙等,就不太适合。

    • 问:如何改进,自己能设计一种新的锁吗?

    • 答:可以...试一下改进内核?当一个线程需要一个暂时不可用的资源时,就先把他锁起来,然后资源有空的时候内核把资源锁定,让之前的线程来使用

    • 勘误:纯粹乱说,请勿参考

    • 问:(算了过了...

  13. 常用的磁盘算法?

    • 答:先来先服务、最短寻道、电梯算法
  14. 计网,大概说一下有几层?

    • 答:主要五层吧,最上面有blabla服务,第四层传输层,主要就是TCP和UDP

    • 问:TCP和UDP的区别

    • 答:可靠传输,拥塞控制,流量控制,面向字节流,要建立连接,(各自的使用情形)

    • 问:如何保证可靠连接?

    • 答:一个是三次握手,一个是滑动窗口和ACK机制

    • 问:滑动窗口的意义除了保证重传,还有一个什么?UDP保证不了的

    • 答:(想了一会儿)保证按序交付

    • 问:IP层的意义?

    • 答:我想想...第二层的意义主要是保证在局域网内的一个寻址,通过ARP知道哪个MAC地址在哪里,那第三层的意义主要就是保证在局域网之间的寻址吧

  15. C里,int是几位?

    • (记不清了,反正从char推导了一遍,但记错char和int的关系,直到最后也没回答上来)
  16. 数组和队列的区别?

    • 答:数组是可以随机访问的吧,队列只能先进先出这样。

    • 问:那如何用数组建队列?

    • 答:可以用环形数组,就index%队列长度这样

    • 问:那比如pop的时候,具体怎么操作呢

    • 答:应该是有两个指针或者计数器指向头和尾巴,pop的时候就把头+1就好了

  17. 算法,二叉树的层序遍历

#iOS面经##实习##面经##网易有道##iOS工程师#
全部评论
黄神😍黄神
点赞 回复 分享
发布于 2021-11-19 14:24

相关推荐

3 16 评论
分享
牛客网
牛客企业服务