几道高级软件工程师面试题1、CALayer与UIView的区别
2、GCD(进程、线程、队列)
3、TCP、UDP
TCP 传输控制协议,提供面向连接的、 可靠的、点到点的通信
UDP 用户数据协议,提供非连接的、不可靠的、点到点的通信
4、socket连接与http连接 (怎么实现,工作原理)
socket 长连接, 服务器与客户端建立连接后不会主动断掉
http 短连接,客户端发出请求,服务端响应请求,连接主动断掉
5、对象之间的通信方式
代理、block、通知、KVO
6、http协议特点,Get和Post请求、Https协议
http 短连接,客户端发出请求,服务端响应请求,连接主动断掉
Get请求没有请求体、Post请求含有请求体
https 基于http的安全版,实用SSL进行了信息交换
7、XML和Json数据解析
XML两种解析方式:DOM解析、SAX解析
DOM:先完成DOM树的构造,处理大文件的时候。耗内存
SAX:每遇到一个开始或者结束标签、属性或者一条指令,程序会产生一条事件进行相应的处理。 适合大XML文件处理
JSON:JSONKIT或者iOS自带的JSon解析类
8、tableView的复用和设计模式,UIButton设计模式
9、存储方式 plist、NSUserDefaults、NSKeyedArchiver、SqLite、CoreData
10、断点续传
11、CoreAnimation、CoreGraphics
12、NSOperationQueues、GCD
13、冒泡算法、二分法、数据结构(链表、二叉树、时间复杂度、空间复杂度很重要)、操作系统、网络知识
面试感受:一般;面试难度:普通难度;面试来源:内部推荐