2022游戏客户端开发笔试选择题(2022.09.16更新

7.sizeof

sizeof实际上是获取了数据在内存中所占用的存储空间,以字节为单位来计数。

8.堆/栈

堆内存申请由程序员自己申请并且需要声明申请大小/最大内存空间大小由系统有效虚拟 内存决定/效率慢,容易产生内存碎片/随意进出

栈地址是指栈顶的地址/内存申请由系统分配/栈空间不足可能会溢出(overflow)/最大内存空间大小2M/相对快,无内存碎片  /先进后出

生长方向:栈 向下生长 ;堆 向上生长

简而言之 对于栈来说上面是栈底下面是栈顶,而对于堆来说,上面是堆顶下面是堆底。

9.select/epoll

多路复用问题:

1)多路: 指的是多个socket网络连接;

2)复用: 指的是复用一个线程;

3)多路复用主要有三种技术:select,poll,epoll。epoll是最新的, 也是目前最好的多路复用技术;

select 支持水平触发, epoll 支持边缘触发。

时间复杂度:

1)select==>时间复杂度O(n)

2)epoll==>时间复杂度O(1)

10.有向图是否有环的问题

1)拓扑排序

2)DFS

11.索引优缺点

优点:

1)可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

2)通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

缺点:

1)需要占用物理空间;创建索引和维护索引要耗费时间,具体地,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,会降低增/改/删的执行效率;

2)维护当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度

3)创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

12.装饰者模式

23种设计模式之一,英文叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。

13.POSIX互斥锁/自旋锁 

1)什么是POSIX

可移植操作系统接口

2)使用场景

自旋锁适用于那些仅需要阻塞很短时间的场景,而互斥锁适用于那些可能会阻塞很长时间的场景。

14.闭包必要条件

1)访问所在作用域;

2)函数嵌套;

3)在所在作用域外被调用

猜你喜欢

转载自blog.csdn.net/Anyo1n/article/details/126905317