腾讯一面

【腾讯一面】3.7/2019
牛客网投简历很速度,当天投简历,当天晚上就有面试了,,,
emama,tecent
--------------------------------------------------------------------------------------------------------------------------------
哎,答题答得不好!
-----
------------------------------
记录问题:
1.c/c++?
学过吗?我们主要用c/c++/go!
结构体对齐规则了解吗?(内存)实际结构体对齐规则其实就是类型转换,类似于表达式类型的自动提升,就是小转大。。。
发现鹅厂是真的喜欢考内存的问题,北京面的时候也是考了我java内存的问题,申请内存。。。
1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,每个数据成员存储的起始位置要从该成员(每个成员本身)大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储)。
例子:
struct node
{
char a;
int b
};
sizeof(node)=8
0是任何数的整倍数,char的大小为1,int大小为4;
a存放在0offset为位置,b存储的起始位置为1,但不满足对其原则,因为int大小为4,其存储位置应为4的整倍数,因此要在a后补齐,使b存储的起始位置为4
因此node大小为8
2:结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储.(struct a里存有struct b,b里有char,int ,double等元素,那b应该从8的整数倍开始存储.)
例子:
struct pa
{
char a;
node b;
}
sizeof(pa)=12
b的起始位置要是4的整倍数,因此要在a后补位,
b占8字节
3:收尾工作:结构体的总大小,也就是sizeof的结果,.必须是其内部最大成员的整数倍(结构体成员以最大成员为代表).不足的要补齐.
例子:
struct node
{
double a;
char b;
}
sizeof(node)=16
按1,2原则可计算出结果应为9;
但结构体大小应为最大成员的整倍数,因此结果应为16
如果编译器中提供了#pragma pack(n),上述对其模式就不适用了,例如设定变量以n字节对齐方式,则上述成员类型对齐宽度(应当也包括收尾对齐)应该选择成员类型宽度和n中较小者;
2.linux了解?
网络状态的命令?netstat,ip 大端,小端?(考察点---内存)
鹅厂真的是到哪都离不开 内存,,,,,就连linux都能和内存扯上,
腾讯一面
文章图片

3.网络了解?比较常规。。。
分层?ositcp/ip几层?ip哪个层? tcp/udp?
1可靠性
2是否需要建立连接----很大的一个区别啊,直接影响数据传输速度啊
3速度
腾讯一面
文章图片

腾讯一面
文章图片

腾讯一面
文章图片

4.抓包会吗?---网络
和前端怎么联调的?
下一个抓包工具呗,抓去呗
5算法说下?
一亿数据,挑出前100个最大的数据?
排序,topk问题。。。。。。

http://www.cnblogs.com/itxiaok/archive/2019/02/15/10385676.html
6说下排序?时间复杂度?快排实现?
http://www.sohu.com/a/246785807_684445
同冒泡排序一样,快速排序也属于交换排序,通过元素之间的比较和交换位置来达到排序的目的。
不同的是,冒泡排序在每一轮只把一个元素冒泡到数列的一端,而快速排序在每一轮挑选一个基准元素,并让其他比它大的元素移动到数列一边,比它小的元素移动到数列的另一边,从而把数列拆解成了两个部分。
腾讯一面
文章图片

这种思路就叫做分治法。
腾讯一面
文章图片


    推荐阅读