首页 > 字节飞书iOS客户端实习一面面经
头像
Saafo
编辑于 2020-11-04 12:36
+ 关注

字节飞书iOS客户端实习一面面经

  1. 自我介绍
  2. 接触iOS多久了?做iOS的理由是什么?
  3. 面向对象的基本概念?
    • 答:封装、继承、多态(解释了一下)
    • 问:继承和多态的区别是什么?
    • 答:略
  4. 堆和栈的区别?
    • 答:高到低、低到高;存一般的数据结构、存对象和手动分配的内存;性能不同,栈销毁只需要移动指针,堆需要手动销毁
    • 问:为什么要这样做?(字符串等放在栈,对象和手动分配的放堆里)
    • 答:感觉和作用域有关吧,作用域是线性的,然后进出作用域的时候销毁起来方便,也更快
    • 问:还有其他原因吗
    • 勘误:栈拓展起来更方便
  5. 了解哪些锁,大概说一下?
    • 答:自旋锁和互斥锁,自旋锁就不断尝试,需要占用CPU时间,适合需要高频获取的资源,但其他进程很少用到的,线程不安全;互斥锁就是不断尝试,但每次尝试之后会休眠,等待操作系统唤醒。个人猜测这个是基于操作系统内核实现的,就是尝试之后就回到block状态,然后等待有资源了,内核会将其调度到ready&running态,然后再去尝试获取资源。
  6. 解释一下中断?
    • 答:调试的breakpoint?
    • 问:操作系统里的
    • 答:大概解释了下一个程序正在运行的时候遇到中断,先检测有没有关中断,如果没有的话就把上下文保存起来,然后切换到中断服务程序,运行完之后再回到当前,把上下文复原,这样...
    • 勘误:关中断和开中断还可以再详细一点
    • 问:中断分为哪些?
    • 答:硬中断和软中断吧,硬中断主要是硬件产生的中断,比如按键盘啊之类的,软中断主要就是软件产生的中断吧。
  7. iOS知识知道多少,都说一下?
    • 大概从生命周期、runloop、runloop mode、observer、source0/1、timer讲到autoreleasepool开发中使用时机、autoreleasepool的释放时机,大概这样。
  8. 算法,三数之和

更多模拟面试

全部评论

(4) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐