大厂2021年,最新整理iOS面试题!

前言

最新收集了前两个月的iOS面试题总结,答案这块,就不细说了,毕竟有的题目也是拿不准,如果有不明白的,大家一起留言评论探讨,大家一起努力!

网络模块:

1、http 的发展历史 以及https的相对于http的加密过程

2、分别说一下tcp 和 udp 以及他们的区别和联系;

3、http的超时默认从什么位置开始计算

4、http使用udp还是tcp链接以及每次发送一个http请求 就一定建立tcp链接吗 为什么

5、tcp三次握手链接 四次断开链接 问:tcp存在四次握手链接吗 以及tcp存在三次握手断开链接吗?

6、为啥是出现四次握手?

7、tcp建立了几个通道 ,分别是什么 ,发送端和接收端是同一个通道吗?

算法模块(可以刷题LeetCode):

1、如何判断一个链表是否是双向列表

2、搜索旋转树相关的问题

3、数组的排序问题

4、给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。

5、给你一个二叉树,请你返回其按层序遍历得到的节点值

6、给定一个二叉树,找出其最大深度。

7、两个栈 实现一个队列
.......

直接刷题就好了 iOS这块的难度一般都在:简单 中等 ;目前hard难度的比较少的!

iOS模块(主要是OC):

1、atomic 和 nonatomic的区别 atomic一定是安全的吗 为什么 举个场景

2、category可以添加成员变量吗 为什么? 如果对应的结构体有这个ivarList的数组 可以添加成员变量吗 为什么

3、iOS的系统通知怎么实现的 接受线程和发送线程一定在同一个线程吗 为什么 举个例子

4、GCD NSThread NSOPeration 使用的场景和区别 以及NSoperation的几种状态分别是什么

5、block的实现原理(这块问了很多 只要了解很透彻的话 这块不是问题)

6、iOS的内存管理方式是什么 ARC和MRC有区别吗 为什么

7、weak、strong 他们分别的实现原理

8、手写一个单利(采用宏定义),以及为什么采用【super alloc] init】

9、对象的创见为什么要init 不要init可以吗 为什么

10、一个NSobject 对象本身占用多少个字节(如何计算的) 以及苹果为什么给对象都是16字节的倍数? 什么叫空间换时间

11、NSAutoRealesepool 的实现原理 以及何时给对象发送relese消息

12、app的性能优化--启动优化说一下

13、NSRuntime NSRunloop 联系 平时怎么使用 比如如何监听卡顿 和 如何让线程常驻

14、image的加载做成 以及如何优化

15、动态库和静态库区别和联系 平时怎么使用的 现在使用动态库的目的是什么 (动态库会增加启动时间) 再说一下这种库加载过程以及如何优化

17、详细说一下事件的传递和响应过程 (注意:手势的有优先级问题还有同时如何阻断事件传递)

18、什么叫离屏渲染(要说的越详细越好)

19、kvo的实现原理 以及如何手动触发kvo

20、说一下以往项目中 最有成就感的项目 并详细介绍使用到的技术点,以及如何攻破技术难点的

21、说一下写时复制

22、swift的面向协议的理解

23、swift中的可变数组 为啥用var来修饰

24、说一下 无痕埋点以及如何实现

2021,祝大家都找到合适的高薪工作

对于答案,欢迎大家积极讨论;整理不易,如果您觉得还不错,麻烦在文末 “点个赞” ,谢谢您的支持

推荐文集

iOS APP 架构设计

Swift 2021 生态调研报告

有一篇Swift模式参考,你我一起学习!

你可能感兴趣的:(大厂2021年,最新整理iOS面试题!)