出自:腾讯面试
一面
Linux指令怎么查看占用内存情况,怎么查看占用端口情况
top
lsof
一个数组a[20][10]的首地址是100,问a[11][5]的地址是多少
如题所指,其代表a[0][0]的地址为100;
所以为100+11410+5*4=560;
数组和链表的内存存储和插入
数组存储连续,方便查询,但是不方便插入;
链表存储不连续,不方便查询,但是方便插入;
unordered_map和map的底层实现,以及使用场景如何选择
unorde_map基于哈希表实现;
map基于黑红树实现;
#include时“”和<>的区别
#include<>:编译器直接从系统类库目录里查找头文件:
#include"":默认从项目当前目录查找头文件,所谓项目当前目录,就是项目工程文件(.vcxproj)所在的目录。如果在项目当前目录下查找失败,再从项目配置的头文件引用目录查找头文件,所谓项目配置的引用目录,就是我们在项目工程中设置的头文件引用目录。如果项目配置的头文件引用目录中仍然查找失败,再从系统类库目录里查找头文件
vector增加元素时,内存变化情况以及push_back使用的是指针、引用还是拷贝
size()++;
capacity不变;
若是超过了则分配1.5或者2倍大小的内存;
Push_back使用的是拷贝,类的话也是使用拷贝
TCP/UDP的区别
- 是否面向连接
- 是否可靠
- 是否支持一对多
- 消耗资源大小,
- 头部长度
TCP如何保证其可靠性
- 校验和
- 流量控制(面对两个端口)、拥塞控制
- 序列号以及确认收到;
- 三次握手四次挥手;
- 超时重传
进程间通信方法
- 管道
- 共享内存
- 消息队列
- 信号
- 信号量
- socket套接字
socket相对于另外几个的优点
可以在不同主机上的进程进行通信;
-
传输数据为字节级,传输数据可自定义,数据量小(对于手机应用讲:费用低)
-
传输数据时间短,性能高
-
适合于客户端和服务器端之间信息实时交互
-
可以加密,数据安全性强
字节的下次再写了,这次就写这么些了23333