由测试开发转开发的第二站,最终以失败而终结,虽然失败了,却让我清醒的意识到了自己下一步路究竟该如何走?究竟应该往哪个领域发展?面试经历了三面,最终卡在了三面boss关。
一面主要是技术面,问了一个小时的技术,主要都还是一些基础的技术:
1、类有哪些特性?描述这些特性。
2、指针与引用的区别。
3、struct与class的区别。
4、struct与union的区别。
5、main函数执行以前,还会执行什么代码?
6、描述内存分配方式,变量在内存中分配的位置?
7、类成员函数的重载、覆盖与隐藏的区别?
8、const的作用
9、简述数组与指针的作用
10、进程间通讯的方式
11、多线程同步方式
12、多线程的api函数
13、析构函数为什么要申明为虚函数
14、构造函数、析构函数可以申明为私有吗?为什么?
15、内存分布
struct name
{
int a;
char c;
short b;
long d;
int e;
}
16、什么时候会调用拷贝构造函数
17、extern c的作用
18、子类调用构造函数和析构函数的顺序
19、class A;class B:public A
void func(A a);
B b;执行func(b)做了哪些事情?
如果是void func(A& a),传进去是a还是b
20、简述TCP的三次握手和四次挥手?为什么会有TIME_WAIT状态?
21、简单说明二叉搜索树的删除过程,时间复杂度。
22、hash表
二面
1、算法题,输入为数字字符串,以‘,’隔开,如“123,45,678”,编写算法,是输出为int数组,如123, 45 678。
2、算法题,如strcut product_t{vector<int> params}; 编写函数void count_params(const vector<product_t>& products, map<int,int>& param_count),map<int,int> param_count为输出,first为params的值,second为params中值的个数。其中问到STL中map中find的实现方式。
3、为快速排序可以用单链表的存储方式实现吗?为什么?
4、简单说一下快速排序算法
5、描述简历中主要事情的实现过程。
6、还问到了简历中决策树的问题,汗,这个是本科做的了,早已忘光
三面
1、为什么要换工作,为什么要转开发,为什么不考虑本公司转岗。
2、为什么要选择检索部门,如果重新选择了一个领域,前几年的工作就等于浪费了,面试官不停的引导我喜欢哪一个领域,要在哪一个领域聚焦。确实这个问题没有想得非常清楚,仅仅想往C++技术上发展,可是C++只是一种语言。
3、项目中的成员是如何协作的。
4、如何评估所做的工作。
到三面的时候很心虚,确实连要面试的岗位都没有好好研究过,社招希望能招一个能立即有产出的成员,而不是像我这样抱着学习的态度,本身还处于迷茫,人家怎么可能要我呢?到底要在哪个领域发展,这个是我急需弄明白的地方啊。