摘要:
题目转自http://blog.csdn.net/morewindows/article/details/7392749 第一题:线程的基本概念、线程的基本状态及状态之间的关系? 线程,有时称为轻量级进程,是CPU使用的基本单元;它由线程ID、程序计数器、寄存器集合和堆栈组成。它与属于同一进程的其他 阅读全文
摘要:
一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。 注意它与数据结构中的堆是两回事, 阅读全文
摘要:
小端模式:数据的高字节放在内存的低地址,数据的低字节放在内存的高地址。记住:小端模式是相反的,只需要记住小端模式即可,windows默认采用的是小端模式。 字节对齐问题:字节对齐有3个准则: 1.结构体变量的首地址能被其最宽的基本类型成员的大小所整除; 2.结构体每个成员相对于结构体首地址的偏移量都 阅读全文
摘要:
TCP(Transmission ControlProtocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的描述下这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发 阅读全文
摘要:
三次握手: 3次握手的过程如下: 第一次握手:起初两端都处于CLOSED关闭状态,Client将标志位SYN置为1,随机产生一个值seq=x,并将该数据包发送给Server,Client进入SYN-SENT状态,等待Server确认; 第二次握手:Server收到数据包后由标志位SYN=1得知Cli 阅读全文
摘要:
1.vector数据结构vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。因此能高效的进行随机存取,时间复杂度为o(1);但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n)。另外,当数组中内存空间不够时,会重新申请一块内存空间并进行内存拷贝。 阅读全文