面试官小哥迟到10分钟,但脾气挺好。
腾讯视频面试,未开视频,只音频交流。
1.两分钟简要介绍一下自己以及自己的项目
这里明显面试官就是对服务器项目感兴趣,所以讲了一下我简历上的服务器项目的大致流程
2.项目当中的前端和后端使用什么协议传输的,ATP吗
答:http(ATP我有些懵的,知识储备之外)
3.http的安全性有没有什么方式改进
答:能想到的就是改用https了
4.那么https与http在tcp连接上有什么不一样
答,https在tcp三次握手之前,会先进行TLS的四次握手,确定加密秘钥
5.介绍一下tcp的拥塞控制算法
6.四次握手中的服务器端的ack应答与fin报文是否可以合并为一次发送给客户端
答:大致是按我的理解在这两次报文之间做了什么事,不可以合并(可能是错的)
7.TIME_WAIT出现在哪个阶段,并发量大的情况下TIME_WAIT同时大量存在有什么措施
答:出现在主动关闭连接方的最后一个阶段,在收到对方的FIN码以及自己发送ACK码后。TIME_WAIT大量存在造成端口号不足使得建立其他新连接失败。措施我说一个是降低TIME_WAIT的等待时间,一个是设置处于TIME_WAIT的端口可重用
8.一些框架有用过吗比如Quick(发音我没听清)
答:没有用过
9.写代码环节
问题:给定一个字符串,将后m个字符移到整个字符的前面。例 str = "abcd12" m=2,输出 “12abcd”
①.先写了一个最低级的双重for循环把最后m个字符依次和前面交换换到最前。时间复杂度O(mn)。面试官说需要优化一下
②.继续写了一个临时变量存后m个字符,然后把全部前面的字符从后往前直接覆盖到字符串尾部。时间复杂度O(n),空间复杂度O(m)。面试官说时间复杂度可以但是空间复杂度还不好
③.最后说思路,在m已知的情况下,每个字符的位置是已知的,就比如前面的字符,index为x那么新的字符串中它的index会变为x+m,这样就可以直接把每个字符都放到它们最终的位置,只需要固定的额外内存来存一个字符的备份以及其他变量。
此时时间复杂度O(n),空间复杂度O(1)。
(太紧张了,这个小题整了好久才达到最优的解法)
10.业务只要是大量数据情况下,一个场景:内存只有一个G,而其他地方有几十亿的数字,现在给定一个数字,如何快速判断这个数字是否存在在那些数字当中
答:建一个bitmap的表,对应数字存在即相应bit位置1,遍历一遍过后,查看给定数字对应的bit位是否为1
11.有关c++11的新特性有了解不
答:有了解,但是直接想不起来,可以问几个你感兴趣的问题
12.好,那你介绍一下c++11的新智能指针吧
答:讲了一下auto_ptr、unique_ptr、shared_ptr以及weak_ptr的作用
结束,问了一下面试官这是什么事业群的面试,面试官说是CSIG腾讯云的
回顾:面试官比较赶时间,问的问题都很快也解释得不算特别清楚,挺我回答也是听个大概就下一个题了也不怎么究细节。而且就算问细节我也答不上来......
全部评论
(5) 回帖