腾讯游戏客户端开发面经(电话面试)
本人在3.12号接到腾讯电话面试,不幸在3.14收到拒信。现在对电话面试内容作业总结
1.首先他会问你一些跟简历上的与技术无关的东西,比如你的简历上写得自我评价(比如我写得热爱编程。。要我用经历说明我怎么个热爱编程法,有过什么实践,然后服不服从调配),然后谈一谈项目
1.C++中 ,Union,Struct,Class的异同点
答:struct和class区别:在struct中,默认的访问级别是public,如果不特别指定级别,则结构体中的数据和函数均为公共接口,而在class默认的访问级别是private,其余之时:struct和class是等价 !
Union 使用
union 共用体名{数据类型 成员名;数据类型 成员名;...} 变量名;
union 也可以包括构造函数和变量
在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。
当一个共用体被说明时, 编译程序自动地产生一个变量, 其长度为联合中最大的变量长度。比如说,最大长度是double数据类型,分配的内存空间就是double型的长度。由于union的资料成员共用一个内存空间,所以必须存取正确的成员才能正确的读取变量值,可以使用一个额外的变数或列举型态来记录最后一次使用空间的是哪个成员。
而且,union的成员不可以是静态的
对于struct,与Union不同,Struct中的成员可以同时存在,所有成员默认公有
在这三种结构中,只有Union不可以被继承,Struct和Class都可以被继承
2。深拷贝和浅拷贝的区别
很多时候在我们都不知道拷贝构造函数的情况下,传递对象给函数参数或者函数返回对象都能很好的进行,这是因为编译器会给我们自动产生一个拷贝构造函数,这就是“默认拷贝构造函数”,这个构造函数很简单,仅仅使用“老对象”的数据成员的值对“新对象”的数据成员一一进行赋值
浅拷贝
浅拷贝就是复制原对象的引用,两者指向同一个内存地址,而深拷贝就是新的内存地址,复制原来对象的数据到这个新的内存地址中去,也就是说,深拷贝结束后,存在两个内存空间储存着一样的数据。
3.new和malloc有什么异同
1.new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。
2. 使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。
3. new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无须进行类型转换,故new是符合类型安全性的操作符。而malloc内存分配成功则是返回void * ,需要通过强制类型转换将void*指针转换成我们需要的类型。
4. new内存分配失败时,会抛出bac_alloc异常。malloc分配内存失败时返回NULL。
5. new会先调用operator new函数,申请足够的内存(通常底层使用malloc实现)。然后调用类型的构造函数,初始化成员变量,最后返回自定义类型指针。delete先调用析构函数,然后调用operator delete函数释放内存(通常底层使用free实现)。 malloc/free是库函数,只能动态的申请和释放内存,无法强制要求其做自定义类型对象构造和析构工作。
6. C++允许重载new/delete操作符,特别的,布局new的就不需要为对象分配内存,而是指定了一个地址作为内存起始区域,new在这段内存上为对象调用构造函数完成初始化工作,并返回此地址。而malloc不允许重载。
7. 内存区域 new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。而堆是操作系统中的术语,是操作系统所维护的一块特殊内存,用于程序的内存动态分配,C语言使用malloc从堆上分配内存,使用free释放已分配的对应内存。自由存储区不等于堆,如上所述,布局new就可以不位于堆中。
8. 最大的不同在于,new不仅分配一段内存,而且会调用构造函数,但是malloc则不会
9. 两者的资源都需要手动释放
4 C++标准库中的algorithm中的sort()排序函数是怎么实现的,用的 什么排序算法*
时间复杂度:n*lg(n)
实现原理:sort并不是简单的快速排序,它对普通的快速排序进行了优化,此外,它还结合了插入排序和推排序。系统会根据你的数据形式和数据量自动选择合适的排序方法,这并不是说它每次排序只选择一种方法,它是在一次完整排序中不同的情况选用不同方法,比如给一个数据量较大的数组排序,开始采用快速排序,分段递归,分段之后每一段的数据量达到一个较小值后它就不继续往下递归,而是选择插入排序,如果递归的太深,他会选择推排序。(当时我就不会还在那里瞎扯,劝大家以后不知道就说不知道)
5.如何实现高内聚低耦合
相关的概念 https://blog.csdn.net/kingscoming/article/details/78836229这里说的很详细
回答的时候就要以你的项目为例子,说明在你的团队内部是怎么应用这些方法的,比如你们类之间的接口啊什么的。
因人而异,不多说
6,计算机图形学中,颜色的处理是在fragment shader 中还是vertex shader中(很遗憾,我当时没有复习图形学)
片元着色器
7.算法题:
在不使用临时变量的情况下,交换两个int变量的值
答:a=a+b;
b=a-b;
a=a-b;
那么这种算法,在什么情况下会有问题呢
答:当两个整数a,b的值得和超过了int类型的最大值,即65535的时候,该算法失效
问:那有没有更好的方法呢。(我就死在这里)
在我实在没有思路的时候
面试官给出了答案
只要对这两个数执行三次异或就可以交换两个变量的值
具体实现
a = a ^ b; b = b ^ a; a = a ^ b;
前两个赋值语句:“a = a ^ b;”和“b = b ^ a;”相当于b = b ^ (a ^ b),而b ^ a ^ b等于a ^ b ^ b。b ^ b的结果为0,因为同一个数与相向相^,结果必为0。因此b的值等于a ^ 0,即a,其值为2。
再执行第三个赋值语句:“a = a ^ b”。由于a的值等于(a ^ b),b的值等于(b ^ a ^ b),因此,相当于a = a ^ b ^ b ^ a ^ b,即a的值等于a ^ a ^ b ^ b ^ b,等于b。
8.设计一个算法。判断一个多边形是凸多边形还是凹多边形。
答:多边形点集 = {P1,P2,P3,P4…Pn}
多边形所有点满足 点(Pn-3),点(Pn)在线段(Pn-2,Pn-1)的同侧
多边形是凸多边形,否则为凹多边形。
最后面试官问是否愿意去服务器端开发,还有就是有没有想做策划的想法。
我都回答没有
整个面试过程大概45分钟,过程中面试段态度很好,声音也很好听。
可惜就是凉了。
腾讯游戏客户端开发面经(电话面试)相关推荐
- 网上搜刮的一些腾讯游戏客户端开发(实习)面试的考题及部分答案
真的好多都中了....就先不整理自己遇到的了,依旧因为之前是在OneNote里面写的,所以排版很乱很乱 C/C++/C#基础: 32位情况下: Char 1个字节 short 2个字节 long 4个 ...
- 腾讯游戏客户端开发面试
碎碎念----第一次腾讯游戏客户端开发面试 作为一个本科.研究生专业都跟计算机不沾边的学生,简历被通过筛选本来就应该是最好的结果了,然而自己还是抱着一点点的期望,万一自己就通过了所有面试,进入腾讯 ...
- 2019腾讯游戏客户端面试
第一次面试腾讯,个人感觉,每个问题都会问的比较深入,以及原理性的理解. 一面是电话面试,一个还比较年轻的面试官跟我开视频面试的,面试时间一小时.下面是一些问到的内容: 1.针对简历,问一下你之前的项目 ...
- 腾讯游戏客户端开发网易互娱暑期实习面经
腾讯提前批(二面挂) 在打算笔试的下午,收到了一面电话通知,周一去腾讯上海大厦现场面试,于是提前批的笔试就没有参加(这可能有点影响) 腾讯一面 和面试官约了时间,结果到了腾讯大厦楼下没法进去,所以只能 ...
- 腾讯游戏客户端开发公开课面试心得
沉浸在我是fw的忧伤之中写下这篇文章,呜呜. 笔试 8月的时候,朋友推荐我去报名腾讯游戏公开课,里面包含三个方向:策划.运营和客户端开发.我报了客户端开发,但是过了一个月之后才收到笔试通知,收到通知的 ...
- 2018腾讯游戏客户端岗位暑期实习生面试
1. 流程 网申 在线笔试 面试 offer 2. 网申和笔试 网申和在线笔试不用多说,过了在线笔试才可以进入到关键的面试环节,笔试的话倒不是很难,基础扎实就行,由选择和编程题,其中编程题3题,300 ...
- java 获取文件大小_阿里Java后端开发面经,面试官都替我感到绝望
点关注,不迷路:持续更新Java相关技术及资讯!!! 内容源于群友投稿!记录一次阿里Java后端开发面经,分享给大家,感谢支持! 前言 秋招面试的第一家公司,也是第一次面试,真的超级紧张,从自我介绍到 ...
- 阿里Java后端开发面经,面试官都替我感到绝望
前言 秋招面试的第一家公司,也是第一次面试,真的超级紧张,从自我介绍到项目介绍再到问题回答,面试表现真的是灾难级~ 由于我笔试做的还行,一面的时候准备的都是项目相关的问题,Java基础和框架相关的就没 ...
- 腾讯游戏客户端日常实习面经
文章目录 碎碎念 一面 二面 三面 HR面 总结 碎碎念 这是我人生第一次面试, 因为无论是以前高中和大学, 我都没有参加过什么社团, 没想到能够这么顺利. 这里非常感谢实验室的几位师兄, 顺爷卢爷朋 ...
最新文章
- 什么是JAVA内容仓库(Java Content Repository)(3)
- java发送html文件_Java生成HTML文件
- Functional Programming 资料收集
- 微软发布首个 Chromium Edge stable 预览版
- 基于Verilog的4-PAM
- bios更新工具_5分钟教会您升级bios主板,华硕主板BIOS教程
- netbeans使用git_如何在我的NetBeans IDE中设置github存储库?
- linux系统下王者荣耀,一日一歌一Linux之一:CentOS 8.1 王者荣耀
- 【补充】Python爬虫:为什么要使用IP代理
- 让AngularJS兼容IE8及其以下浏览器版本的方法
- 【ML】从特征分解,奇异值分解到主成分分析
- Mysql 错误1366, Incorrect string value: '\\xE6\\xB7\\xB1\\xE5\\x85\\xA5...' for column '
- One Piece Introduction
- php模拟QQ登录获得skey码,请教:QQ授权第三方登录论坛之authorize模拟访问,一直失败...
- 对数据驱动运营的理解
- C# 网络编程之网页简单下载实现
- Project Euler Problem 66
- python对文件的操作都有什么_python中文件操作的相关内容总结(附示例)
- android 调用相机并获取图片地址,Android 7.0使用FileProvider获取相机拍照的图片路径...
- 快速实现抖音分享与第三方登录