今年行情这么差,iOS开发到底如何进大厂?

简述

持续更新--请iOS的小伙伴关注! 喜欢的话给一个赞吧!

最近收集梳理了一些iOS相关的问题,其中大部分都是大厂面试或者面试其他人用到的,能命中大部分的面试和日常工作,更希望你可以用它来检验自己!!

以下内容仅凭记忆回想起,还有一些必问的东西,总结在这里,希望能帮到大家!

数据结构与算法

对于移动开发者来说,一般不会遇到非常难的算法,大多以数据结构为主,笔者列出一些必会的算法,当然有时间了可以去LeetCode上刷刷题

  1. 八大排序算法
  2. 栈&队列
  3. 字符串处理
  4. 链表
  5. 二叉树相关操作
  6. 深搜广搜
  7. 基本的动态规划题、贪心算法、二分查找

推荐算法相关文章,希望对你有帮助!

1、七种常见的数组排序算法整理(C语言版本)

2、2019 算法面试相关(leetcode)--数组和链表

3、2019 算法面试相关(leetcode)--字符串

4、2019 算法面试相关(leetcode)--栈和队列

5、2019 算法面试相关(leetcode)--优先队列

6、2019 算法面试相关(leetcode)--哈希表

7、2019 算法面试相关(leetcode)--树、二叉树、二叉搜索树

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:761407670 进群密码000,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!

另附上一份各好友收集的大厂面试题,进群可自行下载!

Block

  1. block的内部实现,结构体是什么样的

  2. block是类吗,有哪些类型

  3. 一个int变量被 __block 修饰与否的区别?block的变量截获

  4. block在修改NSMutableArray,需不需要添加__block

  5. 怎么进行内存管理的

  6. block可以用strong修饰吗

  7. 解决循环引用时为什么要用__strong、__weak修饰

  8. block发生copy时机

  9. Block访问对象类型的auto变量时,在ARC和MRC下有什么区别

推荐Block相关面试文章

2019 iOS面试题-----Block原理、Block变量截获、Block的三种形式

runtime相关问题

runtime是iOS开发最核心的知识了,如果下面的问题都解决了,那么对runtime的理解已经很深了。runtime已经开源了,这有一份别人调试好可运行的源码objc-runtime,也可以去官网找objc4

多线程

主要以GCD为主

  1. iOS开发中有多少类型的线程?分别对比

  2. GCD有哪些队列,默认提供哪些队列

  3. GCD有哪些方法api

  4. GCD主线程 & 主队列的关系

  5. 如何实现同步,有多少方式就说多少

  6. dispatch_once实现原理

  7. 什么情况下会死锁

  8. 有哪些类型的线程锁,分别介绍下作用和使用场景

  9. NSOperationQueue中的maxConcurrentOperationCount默认值

  10. NSTimer、CADisplayLink、dispatch_source_t 的优劣

推荐多线程相关面试文章,希望对你有帮助!!

1、2019 iOS面试题-----进程、线程、多进程、多线程、任务、队列、NSThread、GCD、NSOprationQueue...

2、2019 iOS面试题-----多线程相关之GCD、死锁、dispatch_barrier_async、dispatch_group_async、Dispatch Semaphore

3、2019 iOS面试题-----多线程相关之NSOperation、NSOperationQueue、NSThread+runloop实现常驻线程、加锁

架构设计

  1. 手动埋点、自动化埋点、可视化埋点

  2. MVC、MVP、MVVM设计模式

  3. 常见的设计模式

  4. 单例的弊端

  5. 常见的路由方案,以及优缺点对比

  6. 如果保证项目的稳定性

  7. 设计一个图片缓存框架(LRU)

  8. 如何设计一个git diff

  9. 设计一个线程池?画出你的架构图

  10. 你的app架构是什么,有什么优缺点、为什么这么做、怎么改进

内存管理

1.weak的实现原理?SideTable的结构是什么样的

2.关联对象的应用?系统如何实现关联对象的

3.关联对象的如何进行内存管理的?关联对象如何实现weak属性

4.Autoreleasepool的原理?所使用的的数据结构是什么

5.ARC的实现原理?ARC下对retain & release做了哪些优化

6.ARC下哪些情况会造成内存泄漏

视图&图像相关

  1. AutoLayout的原理,性能如何

  2. UIView & CALayer的区别

  3. 事件响应链

  4. drawrect & layoutsubviews调用时机

  5. UI的刷新原理

  6. 隐式动画 & 显示动画区别

  7. 什么是离屏渲染

  8. imageName & imageWithContentsOfFile区别

  9. 多个相同的图片,会重复加载吗

  10. 图片是什么时候解码的,如何优化

  11. 图片渲染怎么优化

  12. 如果GPU的刷新率超过了iOS屏幕60Hz刷新率是什么现象,怎么解决

系统基础知识

  1. 进程和线程的区别

  2. HTTPS的握手过程

  3. 什么是中间人攻击?怎么预防

  4. TCP的握手过程?为什么进行三次握手,四次挥手

  5. 堆和栈区的区别?谁的占用内存空间大

  6. 加密算法:对称加密算法和非对称加密算法区别

  7. 常见的对称加密和非对称加密算法有哪些

  8. MD5、Sha1、Sha256区别

  9. charles抓包过程?不使用charles4G网络如何抓包

总结
这些都是作者收集的加上自身面试的一些经验总结,后期会持续收集补充,欢迎圈内的高手在评论区或者公众号贴上你的答案或者高质量问题

更多文章请看:

1.直击2020——iOS 面试题大全(补充完整版)

2.“新”携程,阿里,腾讯iOS面试常见问题合集(附答案)

3.我是如何同时拿到阿里和腾讯offer的

4.腾讯&阿里&美团&快手&字节等10公司面经

5.腾讯社招iOS面试记录

6.最新阿里腾讯头条美团等iOS面试总结

7.让 BAT 的 Offer 不再难拿

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:761407670 进群密码000,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!

你可能感兴趣的:(今年行情这么差,iOS开发到底如何进大厂?)