2019面试日记
最近去面试了一下,将面试一些题目记录下来,改进自己。
网络相关
HTTP的请求方式都有哪些
8种:get post put head delete options trace connect
HTTP错误码的分类
1xx-信息提示 2xx-成功 3xx-重定向 4xx-客户端错误 5xx-服务器错误
HTTPS的相关认识
TCP滑动窗口是什么,掉帧会发生什么
设计相关
程序设计的六大原则
OC
load、initialize都是在什么时候调用的,先后顺序是什么?
@property都做了什么?
weak、assign有什么区别,分别在什么时候用,为什么不用另一个?copy在什么时候使用,为什么?
runloop的认识,都做了哪些事,source0,source1分别指代什么?
autoreleasepool都做了哪些事,什么场景下使用,原理是什么,本质是什么数据结构?
显式动画和隐式动画的区别分别是什么
UIview和CALayer的作用分别是什么,苹果为什么这样设计
事件响应者链
AFN的实现原理是什么,为什么选择AFN
unrecognized selector 造成的原因是什么
category能加类属性么,怎么加,runtime怎么加的,加的属性kvo能直接监听么?
KVO的发送者是在子线程,监听者写在主线程,那监听者收到事件是在什么线程?
displaylink的了解
iOS
应用在编译阶段做了哪些事
基本的编译过程分为四个步骤:
预处理(Pre-process):把宏替换,删除注释,展开头文件,产生.i文件。
编译(Compliling):把之前的.i文件转换成汇编语言,产生.s文件。
汇编(Asembly):把汇编语言文件转换为机器码文件,产生.o文件。
链接(Link):对.o文件中的对于其他的库的引用的地方进行引用,生成最后的可执行文件(同时也包括多个.o文件进行 link)。
其他
加密算法中DES、RSA分别是什么类型的加密,原理清楚吗?