收集遇到的面试题(持续更新)

收集从18年3月份开始遇到过的面试问题,共勉
阅读全文

解决hash冲突的三个方法

通过构造性能良好的哈希函数,可以减少冲突,但一般不可能完全避免冲突,因此解决冲突是哈希法的另一个关键问题。创建哈希表和查找哈希表都会遇到冲突,两种情况下解决冲突的方法应该一致。下面以创建哈希表为例,说明解决冲突的方法。常用的解决冲突方法有以下四种:开放定址法这种方法也称再散列法,其基本思想是:当关键字key的哈希地址p=H(key)出现冲突时,以p为基础,产生另一个哈希地址p1,如果p...
阅读全文

HTTP状态码

1开头的http状态码表示临时响应并需要请求者继续执行操作的状态代码。100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。2开头的http状态码表示请求成功200 成功处理了请求,一般情况下都是返回此状态码; 20...
阅读全文

TCP如何实现拥塞控制和流量控制

定义TCP作为面向连接的提供全双工可靠服务协议,具有差错控制、拥塞控制和流量控制等功能。此处所谓的拥塞控制和流量控制,就是将发送端发送能力、接收端接收信息的能力以及当前的网络环境参与考虑,在网络拥塞情况严重或者接收端接收能力有限的情况下,减缓或暂停消息发送,当情况改善时,增强消息发送能力,加上超时/丢失重发的机制,共同提供可靠传输。流量控制流量控制以动态调整发送空间大小(滑动窗口)...
阅读全文

TCP和UDP的区别

TCP与UDP基本区别 1.基于连接与无连接 2.TCP要求系统资源较多,UDP较少; 3.UDP程序结构较简单 4.流模式(TCP)与数据报模式(UDP); 5.TCP保证数据正确性,UDP可能丢包 6.TCP保证数据顺序,UDP不保证   UDP应用场景: 1.面向数据报方式 2.网络数据大多为短消息 3.拥有大量Clie...
阅读全文

总结get和post区别

get参数通过url传递,post放在request body中。get请求在url中传递的参数是有长度限制的,而post没有。get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。get请求只能进行url编码,而post支持多种编码方式get请求会浏览器主动cache,而post支持多种编码方式。get请求参数会被完整保留在浏览历...
阅读全文

linux几种创建进程的方法

在Linux中主要提供了fork、vfork、clone三个进程创建方法。 在linux源码中这三个调用的执行过程是执行fork(),vfork(),clone()时,通过一个系统调用表映射到sys_fork(),sys_vfork(),sys_clone(),再在这三个函数中去调用do_fork()去做具体的创建进程工作。 fork fork创建一个进程时,子进程只是完全...
阅读全文

unix进程间的通信方式

1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。(2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。(3)信号(Signal):信号是比较复杂的通信...
阅读全文

进程、挂起、线程、死锁、中断、陷入······

进程:程序的一次执行过程。进程是动态的,而程序是静态的。进程有五种状态,三种基本状态,四种特征,是系统资源分配和调度的独立单位。程序段,相关数据段,进程控制块(存了四种信息)构成了进程实体。挂起为了系统和用户观察和分析进程的需要,还需引用挂起操作:如果进程正在执行,它将暂停执行,暂不接受调度。与挂起操作对应的是激活操作。挂起的引入有四种原因。线程:引入原因:提高资源利用率和系统...
阅读全文

互联网测试与传统测试的不同

1.测试周期较短,产品功能更新上线较快测试完了一般直接就发布了,所以不像传统的软件有那么长的测试周期,包括internal beta,external beta等过程,而且我了解到的情况,很多基于web的互联网产品平均一天有多个发布,可大可小。所以发布可能就成了测试人员的工作,当然有相关的系统的支持。 这里还需要考虑的问题是常见的基于各种条件的灰度发布,先让部分用户用起来。发布完了之后还要做现...
阅读全文