2018年iOS面试真题(二)

4月面试真题

本套真题是笔者去美团面试(社招)分享的,答案由笔者及其朋友总结,如有问题请及时纠正。

1. 说说你对http和https的了解

http :

(1)、超文本传输协议 (HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。
(2)、http 是一个客户端和服务器端请求和应答的标准(TCP),也是客户端浏览器或其他程序与Web服务器之间的应用层通信协议,其处于OSI7层模型中的应用层。
(3)、http协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容。
(4)、http协议的客户/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。
(5)、http报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下:请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体
(6)、状态消息code

https :

(1)、https(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的http通道,简单讲是http的安全版。
(2)、为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密
HTTPS和HTTP的区别主要为以下四点:
一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

2. 说说你对delegate和block的了解
除了要讲述原理、注意点、可能发生的问题,还要会手写,注意手写,告诫我们没事多写写代码,手写。

3. 谈谈isa指针 (本题,博主尚在了解……)
在Objective-C中,任何类的定义都是对象。类和类的实例(对象)没有任何本质上的区别。任何对象都有isa指针。

4. 谈谈线程及其安全问题
iOS提供了几种线程方式,根据自己的项目或是自己理解聊聊

5. 介绍下分类category ,extension
category : 本题答案参考2018年iOS面试真题(一)
extension : 就是匿名的分类,只有头文件没有实现文件。只能扩展方法,不能添加成员变量。扩展的方法只能在原类中实现。例如你扩展NSString,那么你只能在NSString的.m实现(这当然是不可能的,不过大致和这个类似)。

**6. 将请求参数取出,并组成字典 ** 这是一个算法问题
url:https://www/baidu.com?name=test&passowrd=123456

**7.关于atomic和noatomic **
原子锁、安全和不安全、效率
atomic:系统生成的 getter/setter 会保证 get、set 操作的完整性,不受其他线程影响。比如,线程 A 的getter 方法运行到一半,线程 B 调用了 setter:那么线程 A 的 getter 还是能得到一个完好无损的对象。(多线程中)

nonatomic:就没有这个保证了。所以,nonatomic的速度要比atomic快。(我们程序中很少用多线程所以常用nonatomic)。

你可能感兴趣的:(2018年iOS面试真题(二))