自我感觉答得不好,估计是挂了。但面试官人很好,氛围相对轻松。
流程:常规自我介绍,20min项目,10min八股,30min算法,反问。
项目:问了一些技术细节,以及改进方向。
八股:
1、http的默认端口号?(80)
2、linux中查看进程监听端口号的命令?(不熟悉linux,答了个netstat -ntlp)
3、UDP传输如何解决乱序问题?(没答上来,有个在包中添加序列号,但是忘记了)
4、某个端口已经监听了UDP,是否能再监听TCP?(没答上来,答案是可以,面试官说这题很偏,不知道也正常)
5、malloc分配的是栈内存还是堆内存?(堆)
6、进程和线程的区别?(我答的进程是资源分配的最小单位,线程是cpu调度的最小单位,一个进程可以实例化多个线程)
7、一个进程有多少个堆内存和多少个栈内存?(一个堆内存,栈内存取决于线程数量)
8、有static修饰的内部类和无static修饰的内部类有什么区别?(当时答混了,应该是有static修饰的只能访问静态变量,无static修饰的可以访问实例变量)
算法:
1、二叉树先序遍历(非递归,需要手搓一棵树)
2、二分查找(非递归)
算法题是ACM模式,写二分查找的时候需要自己写输入,但是直接报段错误了,当时整个人是懵的,因为看不出代码逻辑的错误。面试官提示我可以直接在代码里写输入用例,改了一下发现不报错了,结果也对了,这才放下心来。
面试官看到我写了个int binarySearch(vector<int>& nums, int target),由此又问了一个问题:
int binarySearch(vector<int>& nums, int target) 和
int binarySearch(const vector<int>& nums, int target),哪个好?
我答直观感受上应该是用const修饰好,因为const可以保证nums数组不被修改,面试官说我可以自信点,基本就是我说的这样,还说如果不用const修饰的话,当nums被修改的时候需要增加异常处理机制。
面试官人真的很好,写算法的时候让我不着急,慢慢来,可以慢慢调试。
反问:
腾讯公司哪方面吸引您?(面试官说工作环境、包容的文化、以人为本的技术)
面试什么时候能出结果?(官方话术,要把此次面试给同事评估)
不出意外的话应该是凉了,但是纸面30min的面试最终还是持续了一个小时,说不定还有点希望?
希望能帮助到大家
全部评论
(5) 回帖