测试题目的答案

1.TCP 两个已经连接好的服务器跟客户端,其中一方不断地发包,另一方会怎样处理?
*1)TCP是面向字节流的,在缓冲区足够的情况下,可以一次性接收整个字节流的数据
2)TCP具有滑动窗口协议,以A发送方B接收方为例,对接收方B来说,当接收到一个数据分组之后,会马上返回一个信号,表明自己收到该信号,对发送方来说,当滑动窗口的数据分组已经全部发送出去之后,只有在收到确认接收信号,才回移动滑动窗口继续发送。
(个人感觉抓住的是不断发包,也就是不断发送数据,这个就得结合TCP的滑动窗口,流量控制协议来回答)*

2.c++跟c底层是一样,你说说关于底层的一些东西(这问题很广泛,也很杂)
这个也不知道怎样回答哈,好心的大佬们在评论指教一次嘿

3.哈希表的具体实现,hash_map的复杂度,STL中vector,map这些是根据什么来实现的
*哈希表:根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。映射函数为散列函数,数值表为散列表
实现方式:拉链法实现

http://blog.csdn.net/duan19920101/article/details/51579136
复杂度:O(1)
vector的实现:数组(可以了解一下vector的容量机制)
map的实现:红黑树(如果能详细了解肯定加分)*

4.socket函数的使用(具体问题忘了,是关于socket函数的)
具体问题忘了也有点尴尬,这个就跳过吧

5.两个一样的类其中一个有虚函数,另一个没有虚函数,生成的实例的内存大小(虚函数表)
虚函数表的问题,如果类有虚函数,就生成一个虚函数表,也就是多一个虚函数表的指针,32OS是4字节,64OS是8字节。对于同一个类的实例对象,共用同一个虚函数表。虚函数表实际上保存的是虚函数的函数指针。注意的是编译器一般都会将虚函数指针的存在对象实例的最前面位置(确保其有最高性能)

6.ip地址占用的字节数,ip数据报的首部(不含选项)
*ip地址指的是192.168.1.1这种,IPv4是4个字节,IPv6是16个字节
ip数据报首部占用20个字节(IPV4)*

7.进程跟线程的区别
*进程是系统进行资源管理,分配的独立单位
线程是进程的的一个实体,是CPU调度和分派的基本单位。*

http://blog.csdn.net/yaosiming2011/article/details/44280797

8.fork()创建新的进程的时候系统做了什么?
*① 为新进程分配task_struct任务结构体内存空间。
② 把父进程task_struct任务结构体复制到子进程task_struct任务结构体。
③ 为新进程在其内存上建立内核堆栈。
④ 对子进程task_struct任务结构体中部分变量进行初始化设置。
⑤ 把父进程的有关信息复制给子进程,建立共享关系。
⑥ 把子进程加入到可运行队列中。
⑦ 结束fork()函数,返回子进程ID值给父进程中栈段变量id。
⑧ 当子进程开始运行时,操作系统返回0给子进程中栈段变量id*

9.linux系统上查找目录跟查找文件的命令(linux基本命令还是要背,当时偷懒没背果然死得很惨)
find+name+typed(目录)
find+name+print(文件)

10.堆栈的区别。程序中如何分配堆。什么时候栈会溢出
堆是程序员分配的内存空间,栈是由编译器进行分配的内存空间

http://blog.csdn.net/hairetz/article/details/4141043/

使用new fallow 来获得堆的使用
栈溢出是因为程序递归次数过多,编译器每一次递归都给程序分配一定的栈空间,递归次数过多会导致栈分配不足,溢出

11.说说http超文本协议

http://blog.csdn.net/Genius_Ge/article/details/75453824

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值