1.url和uri的区别
URI是URL的一个父类,URL是URI的一个子集。
2.简述短连接和长连接
定义
短连接:例如普通的web请求,在三次握手之后建立连接,发送数据包并得到服务器返回的结果之后,通过客户端和服务端的四次握手进行关闭断开。
长连接:区别于短连接,由于三次握手链接及四次握手断开,在请求频繁的情况下,链接请求和断开请求的开销较大,影响效率。采用长连接方式,执行三次握手链接后,不断开链接,保持客户端和服务端通信,直到服务器超时自动断开链接,或者客户端主动断开链接。
适用场景
短连接:适用于网页浏览等数据刷新频度较低的场景。
长连接:适用于客户端和服务端通信频繁的场景,例如聊天室,实时游戏等。
3.交换和路由的区别
4.epoll和select的区别
5.静态编译和动态编译优缺点
1、动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。
所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。缺点一是哪怕是很简单的程序,只用到了链接库中的一两条命令,也需要附带一个相对庞大的链接库;二是如果其他计算机上没有安装对应的运行库,则用动态编译的可执行文件就不能运行。
2、静态编译就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。所以其优缺点与动态编译的可执行文件正好互补。
6.列举进程间通信方式
管道(无名)
FIFO(命名管道)
消息队列
信号(signal)
信号量
共享内存(最快)
套接字(Socket)
7.什么是死锁
死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方的资源,从而导致恶性循环的现象。当多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进,这种情况就是死锁。
很显然,如果没有外力的作用,那么死锁涉及到的各个进程都将永远处于封锁状态。
8.什么是中断,中断时cpu做什么工作
中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的时间处理程序。待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。
当外部中断,需要cpu暂停当前的任务,做相应的处理,cpu需要判断中断源,保存现场状态,以便能够处理完后继续执行中断的任务。
9.数组和链表的区别,各有何优缺点
10.单链表排序
11.给定一个正整数,找出里面的最大差值
12.c++中子类父类的构造函数调用顺序、析构顺序