快手2019秋招游戏研发笔试题目解析

需积分: 35 5 下载量 3 浏览量 更新于2024-09-07 收藏 29KB DOCX 举报
"快手2019秋招笔试试题-游戏研发A试卷,涉及到的知识点包括编程语言(Java和C++),加密算法,数据结构与算法,操作系统,网络协议,面向对象编程,以及编译原理。" 1. **非对称加密算法**: 非对称加密算法是一种加密技术,它使用一对密钥,公钥和私钥,其中公钥可以公开,而私钥必须保密。题目中提到的AES、DES和MD5都是对称加密算法,而RSA是非对称加密算法。 2. **构造函数执行顺序**: 创建派生类对象时,构造函数的执行顺序为:首先执行成员对象的构造函数,然后是基类的构造函数,最后是派生类本身的构造函数。根据题目,正确顺序是123。 3. **堆排序的特点**: 堆排序是一种比较高效的排序算法,但不是稳定的排序算法,且在某些情况下性能可能会极度恶化。题目中提到的"是原地操作算法"和"自底向上堆构造的时间复杂度是O(N)"是堆排序的特点,而"频分复用"不属于以太网技术,所以"频分复用"不属于堆排序的特点。 4. **结构体大小计算**: 在32位机器上,由于对齐规则,结构体`{char a; float b; short c; char d;}`的大小不是各个成员大小的简单相加,而是要考虑内存对齐,其大小可能是12字节。 5. **虚拟存储器最大容量**: 虚拟存储器的最大容量由操作系统的地址结构决定,即取决于系统能够寻址的地址空间。 6. **平衡二叉树**: 高度为5的平衡二叉树最少需要的节点数是2^(h+1) - 1,其中h为高度,因此最少需要9个节点。 7. **以太网技术**: 以太网技术包括载波侦听、冲突监测和截断二进制指数重发,而不包括频分复用,频分复用是通信领域的一种频谱利用率高的复用技术,与以太网无关。 8. **共享内存访问**: 在Linux系统中,如果两个进程访问同一块共享内存,它们访问同一个对象时,指针可能相同也可能不同,取决于具体的实现和同步机制。 9. **应用层协议**: FTP、DNS和SSH是应用层协议,而ICMP(Internet Control Message Protocol)是网络层协议,不属于应用层。 10. **分级存储体系**: 分级存储体系是为了平衡存储容量、价格和速度之间的矛盾,通过将不同速度和容量的存储设备组合使用,提高整体性能。 11. **C++构造函数执行**: C++代码中的输出为"CBA",因为构造函数的调用顺序是从基类到派生类,同时考虑成员初始化列表的顺序。 12. **编译过程**: 源代码编译的第一个阶段是词法分析,即将源代码分解成一个个有意义的标记(token)。 13. **Java代码描述**: Java代码可以通过编译,但在运行时会抛出NullPointerException,因为尝试在null对象上调用方法。运行不正常,不会输出"testMethod"。 以上内容详细解释了试卷中的各个知识点,涵盖了编程语言、数据结构、操作系统、网络协议、编译原理等多个方面。