深信服实习C++一、二面面经
完全怼项目,深挖,并且从中问你相关的知识。
问题大部分都是 操作系统和计算机网络相关。
一面
问题:
怼项目怼了十几分钟,挖细节。
1.讲讲进程和线程的区别,我讲了一下教科书的定义,然后又讲了一下linux的进程实现(没想到给自己挖坑了),
直接问到内核中fork,pthread_create,还有两者的区别。
2.线程间同步与互斥方法
3.进程间同步与互斥方法
4.问为什么用epoll
5.问知不知道多少并发量,epoll才会比select更有效。
6.详细讲讲三次握手过程、状态变化。
7.四次挥手
8.数据结构讲一下哈希,如何设计一个可以自动扩容的哈希?我讲用C++的vector
9.讲一下vector,vector如何扩容
10.vector扩容会时间复杂度比较高,有没有边复制边扩容的方法。
11.了解redis吗,redis有上面的方法,可以看看。
12.有什么爱好吗?
反问环节。
给我问懵了,以为凉凉了。
挂了电话几分钟,HR打电话过来说明天二面。。。。
二面
二面过去一天以为挂了,结果第二天晚上收到通过。
这次的话是扣简历细节,写上的技能点都给你问了个遍。
问题:
1.TCP和UDP的区别
2.了解http吗?
3.讲讲http和https的区别,https是基于什么协议的?
4.讲一下OSI七层模型
5.讲一下三次握手
5.了解sizeof和strlen吗?
6.sizeof(char*)结果是什么?
7.c语言如何在C++文件里使用
8.C++内存分布情况
9.C++map底层数据结构、unordered_map底层数据结构
10.linux常见命令有哪些
11.查看内存用的哪个命令?
12.翻转字符串(“hello world”如何变成“world hello”),讲思路,如何优化?
即给出时间复杂度O(n),空间复杂度O(1),当时想出来了但是没表达清楚,然后面试官以为我思路错了,我也以为我思路错了,,尴尬了五分钟。。
最后面试官给出左旋字符串的做法,我说我懂了,但是我没理解细节。
他接着问,实现左旋字符串需要几个指针,当时就乱了。
没有反问环节,掐点结束。。。
总体来说不难,但是答得不好。
剩下HR面了。
#深信服面经##面经##深信服#