腾讯PC客户端开发暑期实习一面
总时长大概40mins,今天下午两点开始的。这次面腾讯开发问的比较基础,没有问的特别深或者就一个问题一直问。本来都蛮好,结果最后一个问题又败在了链表,感觉面试官每次回答完都给了肯定的回答ok(可能是我这么以为!?),然后最后问了评价等,面完就赶紧骑车回公司了,然后一刷新,幸好没有显示流程已结束,好希望二面他通知的短信快点来。
PS:后来又听了下录音,感觉自己的回答有点文不对题,感觉回答的和面试官问的,感觉回答的有点偏,老是会扯到其他点的回答。还是有点打断别人说话的习惯,虽然好了一点。
-
自我介绍
-
更仔细说一下项目OJ
-
问了项目中的OJ后台数据怎么测的问题
- 因为后台数据比较少,最多几十行,手动去测,文件对照数据,找出优化办法等
-
数组和链表的区别
-
我讲了查找、删改的时间复杂度 + 物理内存是否连续
-
然后面试官问那我们通过索引,数组的下标去访问数组那不就是O(1)了吗,可是你刚刚说的是O(n)
-
我说知道数据下标,查找就是O(1),但是不知道的话就需要O(n)去遍历整个数组去找到整个值
-
那为什么我们开辟空间的时候不能直接把下标对应起来呢
-
查找元素的时候有很多办法,我们不一定要用O(n)的办法吧
-
然后我说了二分、快排、快排的优化、时间复杂度
-
-
哈希表了解吗 大概介绍一下
- 我讲了键值一一对应、海量数据O(1)的查找时间复杂度直接去找就行了、map相似处
-
哈希表键值万一有冲突怎么办
- 我说了取余
-
哈希表如果取余还是存在冲突怎么办,就是因为取余才造成的冲突啊
-
开发地址法
-
取余去一个质数,比如1e9+7之类的
-
但是这些只能去尽可能的最大避免
-
-
网络这块有学习吗(有)
-
网络七层和五层说一下(OSI七层和TCP/IP五层分别是哪些)
-
OSI七层协议大概哪层有什么,你了解哪些协议,比如HTTP在哪一层之类的
- 我从物理层往上都讲了一遍,然后说DNS解析的DNS协议是基于UDP的,然后面试官反问确定吗,确定的
-
TCP和UDP
-
你觉得TCP一定比UDP慢吗,你所说的和这个慢怎么理解
-
因为TCP可靠就一定慢吗(面试官笑了一下,我好害怕挂了)
-
UDP一对多吗
-
TCP和UDP中的有连接无连接是什么
-
TCP建立连接的过程(我一开始没反应过来,啊了一下,后来1s的样子知道了问的是TCP的三次挥手和四次握手)
-
TCP为什么握手不是三次,挥手不是三次
-
讲一下堆栈
- 我先分别讲了,后来又讲到了内存上,后来又讲到了五个内存分配
-
能举下例子哪些变量在栈上开辟,哪些在堆上开辟的,拿你学过的C来说吧
-
局部变量在哪里开辟的
- 栈
-
函数的那些参数在哪里开辟的
-
静态的话就在全局区
-
面试官问,函数参数有静态的吗,你怎么理解指的是什么
-
我说了static变量,但是我已经感觉不对了
-
其他都开在栈区
-
-
你C和C++都学过是吧
- 对的
-
写一个简单的链表反转吧(内心OS:上次也碰到了这个然后不会,前两个星期刚学,但是我忘了呜呜呜……然后我就硬着头皮写了好久然后说写好了,也没调试运行啥的,直接一个方法class给面试官说好了,呜呜好怕因为这个挂)
-
反问
-
问了技术栈(你想做移动端还是桌面端,移动端的IOS上是OC,Android是Kotlin)
-
问这次面试的表现(知识面蛮全的,问题回答也从大到小层面,但是知识没有融汇贯通,加上你有点紧张)
-