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,祝大家都找到合适的高薪工作
- 对于答案,欢迎大家积极讨论;整理不易,如果您觉得还不错,麻烦在文末 “点个赞” ,谢谢您的支持