鹅厂后台开发九面凉经
楼主算上实习,面了腾讯9次,妥妥的kpi工具人,题目汇总如下。
第1-3次 光子游戏后台开发 三面挂
一面
客户端用TCP协议发送3个包给服务端,服务端收到几个包;如果用UDP协议呢?
虚函数表的作用
字节对齐的作用 节约空间,读取数据效率
Char short int float double 算算这个结构体有多少字节
构造函数可以是虚函数吗?
基类A有虚函数,子类B重写虚函数,有几个虚函数表
Map 的迭代器,什么情况下会失效
智能指针的概念,有哪几种智能指针
20亿个整数,中间只有一个数字出现了两次,如何快速找到它?如果用map,需要多少字节空间,map<int,bool> 20亿*5=100亿字节 多少kb、mb、gb、tb
请用5分钟介绍最近学到的新技术
二面
首先编程解决如下问题,本质是大整数的相加问题,还考察了int的范围。
在这个过程中,要考虑正数或者负数,考虑非法输入等,代码要考虑全面。
这个地方会深挖,挖到你不会为止。
#include <iostream>
using namespace std;
//Given two integers num1 and num2 represented as string, return the sum of num1 and num2.
string addStrings(string num1, string num2) {
//TODO
return "0";
}
int main() {
string num1;
string num2;
cin >> num1;
cin >> num2;
cout << addStrings(num1, num2) << endl;
return 0;
}
研究生阶段,自己觉得最有意义的项目或者技术。
介绍一下研究领域。
在学习方面,自己做过哪些努力。
智力题:估算深圳市的下水道井盖数量。
三面
1.一段代码
A:B,C
{
virtual funcA();
int a;
}
B
{
virtual funcB();
int b;
}
C
{
virtual funcC();
int c;
}
A *pa=new A;
C *pc=(C*) pa;
pa指向的内存有什么东西,pc指向的内存有什么东西。
2.两个玩家出牌,A先出,B后出。一方出单只牌,另一方只能出单只牌,并且只能出大于对方的牌,否则要不起。如A出5,B就要不起。A出4,B只能出5。一方出两只牌,另一方也只能出两只牌,如A出66,B只能出77或者88.
问:A怎么出牌,必定先出完手里的牌,成为赢家。
A
3 66
4 77
5 88
B
3 66
4 77
5 88
3.客户端向服务端发送数据包,一次发送100字节,发送了20次,问服务端读取数据时,能读到多少字节,所有的情况。
第4次 8月8日电话面 天美游戏客户端一面挂(过了3天才灰,说有更优秀的候选人)
客户端用TCP协议发送3个包给服务端,服务端收到几个包;如果用UDP协议呢?
虚函数表的作用
字节对齐的作用 节约空间,读取数据效率
Char short int float double 算算这个结构体有多少字节
构造函数可以是虚函数吗?
基类A有虚函数,子类B重写虚函数,有几个虚函数表
Map 的迭代器,什么情况下会失效
智能指针的概念,有哪几种智能指针
20亿个整数,中间只有一个数字出现了两次,如何快速找到它?如果用map,需要多少字节空间,map<int,bool> 20亿*5=100亿字节 多少kb、mb、gb、tb
请用5分钟介绍最近学到的新技术
二面
首先编程解决如下问题,本质是大整数的相加问题,还考察了int的范围。
在这个过程中,要考虑正数或者负数,考虑非法输入等,代码要考虑全面。
这个地方会深挖,挖到你不会为止。
#include <iostream>
using namespace std;
//Given two integers num1 and num2 represented as string, return the sum of num1 and num2.
string addStrings(string num1, string num2) {
//TODO
return "0";
}
int main() {
string num1;
string num2;
cin >> num1;
cin >> num2;
cout << addStrings(num1, num2) << endl;
return 0;
}
研究生阶段,自己觉得最有意义的项目或者技术。
介绍一下研究领域。
在学习方面,自己做过哪些努力。
智力题:估算深圳市的下水道井盖数量。
三面
1.一段代码
A:B,C
{
virtual funcA();
int a;
}
B
{
virtual funcB();
int b;
}
C
{
virtual funcC();
int c;
}
A *pa=new A;
C *pc=(C*) pa;
pa指向的内存有什么东西,pc指向的内存有什么东西。
2.两个玩家出牌,A先出,B后出。一方出单只牌,另一方只能出单只牌,并且只能出大于对方的牌,否则要不起。如A出5,B就要不起。A出4,B只能出5。一方出两只牌,另一方也只能出两只牌,如A出66,B只能出77或者88.
问:A怎么出牌,必定先出完手里的牌,成为赢家。
A
3 66
4 77
5 88
B
3 66
4 77
5 88
3.客户端向服务端发送数据包,一次发送100字节,发送了20次,问服务端读取数据时,能读到多少字节,所有的情况。
第4次 8月8日电话面 天美游戏客户端一面挂(过了3天才灰,说有更优秀的候选人)
TCP如何保证有序可靠的
TCP如何建立连接的
TCP和UDP的区别
UDP在游戏方面的应用
如果TCP的头部太大,会发生什么?网络会拥塞吗
B和C都继承自A,然后D同时继承B和C,A中int a ,B中int b, C中int c, D中int d。问sizeof(D)是多少?如何访问D中的两个a
虚继承
用C语言实现C++的多态
C++的虚函数底层是如何实现的
介绍C++ 11的移动
一个类既有拷贝构造函数,也有移动构造函数,什么时候调用拷贝,什么时候调用移动
两个名字一样的函数,一个参数是int &&, 一个是const int &. 现在实参传递一个常量const int i ,调用哪个函数。
move的底层是如何实现的
如下函数会出现问题吗,出现什么问题
int & test{
int a=0;
return a;
}
自己对游戏开发的规划
第5次 8月12日视频面 游戏客户端一面挂
TCP如何建立连接的
TCP和UDP的区别
UDP在游戏方面的应用
如果TCP的头部太大,会发生什么?网络会拥塞吗
B和C都继承自A,然后D同时继承B和C,A中int a ,B中int b, C中int c, D中int d。问sizeof(D)是多少?如何访问D中的两个a
虚继承
用C语言实现C++的多态
C++的虚函数底层是如何实现的
介绍C++ 11的移动
一个类既有拷贝构造函数,也有移动构造函数,什么时候调用拷贝,什么时候调用移动
两个名字一样的函数,一个参数是int &&, 一个是const int &. 现在实参传递一个常量const int i ,调用哪个函数。
move的底层是如何实现的
如下函数会出现问题吗,出现什么问题
int & test{
int a=0;
return a;
}
自己对游戏开发的规划
第5次 8月12日视频面 游戏客户端一面挂
发生内存泄漏了,如何排查
为了防止内存泄漏,设计一个缓存池
发生内存泄漏的原因
对内存的了解
汇编。。。
TCP和UDP介绍一下
TCP如何保证可靠的
改造UDP,使其可靠同时不丢失实时性
多线程是如何同步的
客户端如何设计多线程,保证网络的稳定,如果一个线程挂了,如何使用另外一个线程完成网络通信
学过什么统计分析的算法吗
如果网络发生抖动了,想要通过分析数据来标识用户的网络体验,怎么做?
为了防止内存泄漏,设计一个缓存池
发生内存泄漏的原因
对内存的了解
汇编。。。
TCP和UDP介绍一下
TCP如何保证可靠的
改造UDP,使其可靠同时不丢失实时性
多线程是如何同步的
客户端如何设计多线程,保证网络的稳定,如果一个线程挂了,如何使用另外一个线程完成网络通信
学过什么统计分析的算法吗
如果网络发生抖动了,想要通过分析数据来标识用户的网络体验,怎么做?
第6次 8月22日视频面 应用开发岗位一面挂
面向对象的三大特性,详细介绍
哈希表如何设计,如果采用拉链表,最坏的查找时间复杂度是多少,如何降低复杂度?
从输入网址开始,到得到内容,整个过程,越细致越好
编程题
public static void increment(String url){
//请补充代码,实现一个对url访问次数进行计数的逻辑,针对url的访问次数进行计数,该方法每访问一次,对应url的计数增加一次,要求保证线程安全
}
描述思路:一个4G的大文件,里面全是无顺序的数字,内存只有512MB,如何进行排序?
哈希表如何设计,如果采用拉链表,最坏的查找时间复杂度是多少,如何降低复杂度?
从输入网址开始,到得到内容,整个过程,越细致越好
编程题
public static void increment(String url){
//请补充代码,实现一个对url访问次数进行计数的逻辑,针对url的访问次数进行计数,该方法每访问一次,对应url的计数增加一次,要求保证线程安全
}
描述思路:一个4G的大文件,里面全是无顺序的数字,内存只有512MB,如何进行排序?
8.24五道编程题笔试ac2.6题
第7次 8月27日视频面 微信支付后台开发一面
C++有哪些构造函数
拷贝构造函数
构造函数可以是虚函数吗
析构函数可以是虚函数吗,如果不是虚函数,会有什么问题
如何解决多重继承
多进程和多线程
如何避免僵尸进程
什么是线程饿死,为什么会饿死
进程通信的方式
socket通信的主要过程,哪些函数会阻塞,close会阻塞吗
TCP为什么要四次挥手,会存在三次挥手的情况吗?
如果客户端有大量的TIME_WAIT,怎么办
找数组中的最小n个数字
红黑树有了解吗
linux如何查看IO使用情况,磁盘使用情况
有接触过web吗,安全漏洞了解不?
第8次 9月1日视频面 微信支付后台开发二面(算法题写出来了,过了一天灰掉)
拷贝构造函数
构造函数可以是虚函数吗
析构函数可以是虚函数吗,如果不是虚函数,会有什么问题
如何解决多重继承
多进程和多线程
如何避免僵尸进程
什么是线程饿死,为什么会饿死
进程通信的方式
socket通信的主要过程,哪些函数会阻塞,close会阻塞吗
TCP为什么要四次挥手,会存在三次挥手的情况吗?
如果客户端有大量的TIME_WAIT,怎么办
找数组中的最小n个数字
红黑树有了解吗
linux如何查看IO使用情况,磁盘使用情况
有接触过web吗,安全漏洞了解不?
第8次 9月1日视频面 微信支付后台开发二面(算法题写出来了,过了一天灰掉)
编程题一 建立一个树,把这个树变成镜像,然后写函数判断是不是原树的镜像
编程题二、实现atoi
事务的概念、死锁的概念,如果数据库发生死锁了,怎么解决
如果有突发的大量流量,如何处理?
二维码打开付款码,让商家扫这个操作,有哪些安全技术点需要考虑?
编程题二、实现atoi
事务的概念、死锁的概念,如果数据库发生死锁了,怎么解决
如果有突发的大量流量,如何处理?
二维码打开付款码,让商家扫这个操作,有哪些安全技术点需要考虑?
第9次 9月9日 微视后台一面灰(输入数据要自己处理,写出来两道,第三题说了思路)
40分钟4道算法题
1、单向链表反转
2、求一个二叉树的最大深度
3、给定一个m*n的数字矩阵,每个数字代表代表经过该点的开销,要求仅使用向下、向右两种移动方式来移动位于左上角的棋子到右下角,且途径的开销最小。求最小开销的值
1、单向链表反转
2、求一个二叉树的最大深度
3、给定一个m*n的数字矩阵,每个数字代表代表经过该点的开销,要求仅使用向下、向右两种移动方式来移动位于左上角的棋子到右下角,且途径的开销最小。求最小开销的值
4、已有方法rand11可以生成1到11范围内的均匀随机整数,试写一个方法rand100,生成1到100范围内的均匀随机整数
自学看了哪些书,说一下书目
进程和线程的区别
进程切换和线程切换的具体不同
多线程中,一个线程阻塞,为什么会影响同进程的其他线程?
子线程fork()一个进程后,新的进程是多线程的吗
malloc底层是如何实现的,在什么地方申请空间
进程地址空间,为什么是0-4G,和什么有关?
epoll和select的区别
四次挥手,为什么是2MSL,而不是1或者3MSL
map插入元素后,迭代器会失效吗? vector呢,vector两种情况都要考虑。
C++ 11新特性有哪些
C++的多态是如何实现的
#实习##面经##腾讯##C++工程师##校招#自学看了哪些书,说一下书目
进程和线程的区别
进程切换和线程切换的具体不同
多线程中,一个线程阻塞,为什么会影响同进程的其他线程?
子线程fork()一个进程后,新的进程是多线程的吗
malloc底层是如何实现的,在什么地方申请空间
进程地址空间,为什么是0-4G,和什么有关?
epoll和select的区别
四次挥手,为什么是2MSL,而不是1或者3MSL
map插入元素后,迭代器会失效吗? vector呢,vector两种情况都要考虑。
C++ 11新特性有哪些
C++的多态是如何实现的