总结三

来源:互联网 发布:南风知我意结局是什么 编辑:程序博客网 时间:2024/05/16 03:11

1.http和https
http超文本传输协议,http使用TCP作为它的运输层支持协议,http是一个无状态协议,即不保存客户机的任何信息。
http的过程如下:

https以安全为目标的超文本传输协议,简单地来说就是http+SSL。HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。https的过程如下:

2.四十亿个数字找某个数字是否在里面

unsigned int的取值范围是2321=4294967295,可以申请一个512m的内存(512m=4294967296bit),读入相应的40亿个数,存在该位置为1,不存在置为0,最后在查找相应的位。

3.在2.5亿个整数中找出不重复的整数,内存不足以容纳这2.5亿个整数。
采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,共需内存2^32*2bit=1GB内存,然后扫描这2.5亿个整数,查看Bitmap中相对应位,如果是00变01,01变10,10保持不变。扫描完事后,查看bitmap,把对应位是01的整数输出即可。(没有理解,内存不足以容纳2.5亿个数是指按正常操作没有足够空间吗)

4.判断链表是否环
设置两个一快一慢指针,fast指针一次走两步,slow一次走一步,如果两个指针相遇则说明有环,否则fast遇到NULL就退出了。
这里写图片描述
补充:环的大小
从相遇点再次相遇的步数即为环的大小。另一种解法:相遇点slow走过的步数即为环的大小。
证明:设头结点到连接点的节点数为a,连接点到相遇点的节点数为b,相遇点到连接点的节点数为c,相遇时,fast指针走过的节点数是slow指针的两倍,即2(a+b)=a+b+c+b,可知a=c,而环的大小等于:b+c=b+a即为slow走过的节点数。
补充:找环的连接点
设置p,q。p从头开始往后走,q是从相遇点开始,两者相遇的点即是环的连接点。
证明:由上一条证明可得a=c,所以相遇的节点为环的连接点。

5.拷贝构造函数为什么使用引用类型
为了防止拷贝构造函数无限制地调用下去。

6.静态成员函数不能声明为虚函数
静态成员函数是在编译时期确定的,可以不通过对象来调用,即没有隐藏的this指针。而虚函数是在运行时才绑定,底层是用this实现的,两者是矛盾的。因此静态成员函数不能声明为虚函数。

7.什么是死锁,必要条件,解决方法
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。
必要条件:互斥,请求与保持,不剥夺,环路等待
解决方法:预防死锁,避免死锁,检测死锁,解决死锁

原创粉丝点击