1.C++ UML类图
考官当场出一个需求,让你根据uml画出相关uml图。
2.stl容器
vector和list在后端在大量数据接收时候,哪个容器更加合适?vector动态扩容,导致频繁的拷贝复制数据到新的空间,效率没有list高,(个人认为list在堆上频繁开辟空间存储数据会造成空间碎片化在运行一段时间后导致coredump,此时后端多进程可以采用共享内存,多线程可采用内存池)
大量的内存碎片会使系统缓慢,原因在于虚拟内存的使用会使内存与硬盘之间的数据交换称为系统
缓慢的根源,最终造成内存的枯竭!!!
如何避免内存碎片的产生
1>少用动态内存分配的函数(尽量使用栈空间)
2>分配内存和释放的内存尽量在同一个函数中
3>尽量一次性申请较大的内存2的指数次幂大小的内存空间,而不要反复申请小内存(少进行内存的分割)
4>使用内存池来减少使用堆内存引起的内存碎片
5>尽可能少地申请空间。
6>尽量少使用堆上的内存空间~
7>做内存池,也就是自己一次申请一块足够大的空间,然后自己来管理,用于大量频繁地new/delete操作。
3.new和malloc区别以及底层实现机制
4.tcp和udp整个流程(毡包如何处理)
项目中的心跳监测注意
5.const关键关键字
6.四种转换
其中动态转换中的父类指针引用怎么转换成子类的?
静态转换常见的用法
7.封装继承多态
主要讲多态
静多态(函数重