Skip to content

Latest commit

 

History

History
38 lines (36 loc) · 1.68 KB

字节面试.md

File metadata and controls

38 lines (36 loc) · 1.68 KB

字节面试

一面:

  • NSobject对象占的内存,添加方法是否内存会增加
  • 说说对分类的认识,分类的用途
  • KVO
  • 说说对Block的认识,使用block需要注意什么
  • Runtime如何查找方法
  • weak变量置nil
  • 几种对象间通信方式的对比
  • 进程、线程
  • MVC、MVP、MVVM
  • 属性关键字,copy和strong的区别,使用copy的时机,可变对象使用copy会发生什么
  • 对ARC的认识
  • 循环引用、如何查找内存泄漏、项目中是否有内存泄漏的情况、如何解决的
  • http和https的认识,https如何实现的安全(TLS/SSL加密)
  • 字典的底层实现猜想
  • hash表解决冲突
  • 算法:一棵二叉树的最长路径(查找树的的深度相加)

二面:

  • 死锁:指两个或两个以上的线程,他们之间相互等待彼此停止执行,以获得某种资源,但是没有一方会提前退出的情况。 死锁发生的情形: (1)一个线程两次申请锁。 (2)两个线程互相申请对方的锁,但是对方都不释放锁。
  • 深拷贝、浅拷贝
  • 进程、线程
  • TCP三次握手,为什么tcp需要进行三次握手
  • 两个字符串的最长重复字串(使用动态规划算法)
  • 最后问了问我的规划(我就说了短期规划,没想到他让我说的是长期的。。。无语)

三面

  • 知道哪些设计模式,说一下
  • GCD、NSOperation之间的区别
  • NSTimer
  • Runloop、RunloopMode
  • 我简历写了Swift,所以问了问对函数式编程的理解以及map、flitter、reduce函数是做什么的(一开始问的map和mapflat,刚好忘了,淦)
  • 问了问一般拿终端做过什么,然后问了一点git
  • 算法写了一道反转链表