2021年我的ios进阶面试题

今年参加了很多面试,看看我的面试题是哪些

我遇到的能想起来的面试题
  1. 什么事Runloop?简述Runloop的执行顺序、用Runloop实现一个后台常驻线程。
    参考 https://juejin.cn/post/6868551023439544333
  2. 列举几种实现延迟调用的方法?
  3. 简述面向过程与面向对象的区别,面向对象有哪些特性?
  4. 简述动态库和静态库的区别,ios中动态库和静态库的表现形式分别是什么?简述.a 和 .framework的区别?
  5. 如何实现OC与Swift的混编?
  6. 简述项目中使用过的APP优化策略,不限于启动优化、UI卡顿优化等?
    参考 https://www.jianshu.com/p/024b3d847fe0
    https://www.jianshu.com/p/80f72cdb0aa9
  7. 消息转发原理 ?消息转发机制?
    参考 https://www.jianshu.com/p/6c219728bf68
  8. coacoapods 中的pod init,和pod update 的区别?
  9. 组件化是怎么实现的?
  10. 简述下你常用的第三方库有哪些?并阐述你熟悉的某个第三方库的实现原理?
  11. runTime的理解
  12. autoRelease的理解
  13. load什么时候调用?
    参考 https://juejin.cn/post/6884133502401396744
  14. block 的实现机制是什么?调用外部变量为什么要用__block ? __block
    和 weak,strong 的区别?
    参考: https://www.jianshu.com/p/221d0778dcaa
    心得:
  • block就是一个对象,把要实现的方法赋值给此对象属性,
  • block调用外部的值类型变量,就是在声明block时,就把值传递给了block,所以之后修改值对block无影响,block捕获的是值。
  • 如果值变量用static修饰,block捕获的是值变量的地址;
    block修改全局变量: block并没有把num作为参数,_block_func_0中也是直接访问全局变量.
  • block使用self时,会捕获self,block会声明个self类型的strong属性,block强引用self,同时self也会强引用block,
  • 使用Weak解除block循环引用时,block会声明个self类型的weak属性,解除循环
  • clang 可以查看 源码block原理 参考 https://www.sohu.com/a/319619700_208051
    clang 报错参考 https://www.jianshu.com/p/741b550db5a9
  • strong,copy的区别 参考 https://www.jianshu.com/p/62913d6cbc40
  1. weak,strong 怎么实现内存管理的?

  2. 简述下 mvc,mvp,mvvM

  3. loadview,viewdidload,viewdidunload 都什么时候调用,主要处理什么?

  4. 常用的加密方法有哪些?
    参考:https://www.jianshu.com/p/cee228aabdbc

  5. 怎么保证APP的安全的?

  6. 说说你对 堆,栈,静态区域的理解?
    参考 https://www.cnblogs.com/codetime/p/7353434.html
    https://www.jianshu.com/p/eaa20cf39ad5

  7. alloc,init ,new
    参考 https://www.jianshu.com/p/b0324891661c

  8. iOS开发之+load与+initialize
    参考 https://www.jianshu.com/p/7a5610d5802f

  9. 单例是怎么实现的?怎么避免单例被多次创建?
    http://www.cocoachina.com/articles/21300

  10. ios内存管理是怎么实现的?

  11. 加密方式有哪些?对称加密和非对称加密的区别?

  12. http 和https 的区别?

  13. App 启动时 经历了什么?
    https://www.jianshu.com/p/ecfb61b68c89
    https://zhuanlan.zhihu.com/p/28600469

  14. 多线程
    https://www.jianshu.com/p/5593af00c597

  15. kvo
    https://www.jianshu.com/p/56baca325824

  16. mvc,MVP,mvvm的区别?
    https://www.jianshu.com/p/d39a5eee48d7
    附代码demo https://blog.csdn.net/xiaozhuanddapang/article/details/78553215
    有示例代码 https://www.jianshu.com/p/2c80175044f6

  17. wkwebview 性能优化,缓存处理?

  18. int 值传递,地址传递?

  19. 各种第三方框架实现原理,AFnetWoring,MJExtion,SDwebimage

  20. UI事件传递原理?
    hitTest

  21. swift 什么时候用stuct 什么时候用class?

swift面试题 别人整理的

https://www.jianshu.com/p/e7eeff77adcd

记录

  1. ios分层架构设计 参考https://www.jianshu.com/p/1de2a8ac7b2d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

ps备注:
查看底层源码的命令
clang -rewrite-objc main.m
clang -rewrite-objc -framework Foundation main.m
clang -rewrite-objc -fobjc-arc -fobjc-runtime=macosx-11.2.3 main.m

你可能感兴趣的:(2021年我的ios进阶面试题)