先分享下我的面试经历:
拿到了金蝶的提前批次但是因为岗位不符合,我觉得一个岗位可能会影响以后的就业方向。所以我选择了放弃这个测试岗位。
到9月份校招开始了:
第一家360搜索:运气到来,通过了三面,却接来了offer候补,hr还是一个很好的人,告诉我他们部门大都是研究生,让我别停止,继续找工作,这让我顿时心里就明白了。
第二家腾讯到达2面,问道了gdb调试的一些比较偏门的参数,后来发现我自己在简历上写了自己懂gdb,这就是自己作死的一种结果。
第三家乐视,到达2面,二面面试官对gcc的参数有很浓厚的兴趣,-O这个参数是什么。。。原来是忧化。算是长见识了。通过这俩次都发现自己对这些常见命令的参数欠缺,于是开始恶补。还问了几个算法。答的不错。还写了俩个代码都得到面试官的认可。但是还是挂了。
第四家京东,一面挂,他问了我很多基础的东西,问我知不知道动态链接和静态链接的实现没有答上来,还有问了makefile的实现,其他都是c++的基础问题。没问算法,通过和同学交流干觉京东的面试和缘分更是挂钩。
5.。。。,去哪儿,一面挂,这家怪我没有弄清楚公司的招聘,我上去就和面试官说自己喜欢c++,结果面试官和我聊的到是很开心,但是挂的也很不留情。
4399 ,霸面,潜规则了。没有问什么,5分钟就出来了。
猎豹,到达hr面,面试主要了解操作系统方面的东西。ntfs和fat的区别,通过自己长期的装系统,在thoughtworks的老师那里讨来的github的开源文档,让我对这方面有了自己的一些见解。
经过这几次的面试,我觉得,实力+运气。。。
好吧,我觉得自己可能运气差了点,哈哈。
下面是我在其中遇到的问题,和我的看法,我也还在寻找,希望这些东西能够帮到大家。
C++的空类中默认的成员函数
对于一个空类,编译器默认产生4个成员函数:
默认构造函数,析构函数,拷贝构造函数,赋值函数
结构体中是否有构造函数,析构函数,成员函数。如果有结构体和类有什么区别。
Struct和class的区别:
Struct默认的权限为public,class默认的权限是private
Struct继承的权限默认为public class为private;
Struct用来申明一个数据类型,class用来申明一个对象。
4种智能转化:
Static_cast:
1.用于类层次结构的转换
这种智能转换上行转换是安全的,下行转换时是不能保证安全性的。
2.用于基本数据间的转换,
3.把空指针转换成目标类型的空指针
4.把任何数据类型转换成void
Reinpreter_cast
必须是指针,引用,可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针。(当从指针到整数再回到指针时所指向的值不变)
Const_cast:
可以修改const volatile类型修饰的变量的属性
Dynamic_cast
其他三个都是编译时转换,其实运行时转换
1. 上行转换时安全的
2. 多重上行转换是安全的
下行的智能转换:
转换成void*类型,必须包含虚函数,就说明她想让基类指针指向派生类的对象,运行时检测运行时类型信息,这个信息存在内的虚函数表中。
在下行转换时,检测原始类型是否真正指向一个目标类型如果是则转换,否则返回NULL,保证了其智能性和安全性。
指针和引用的区别:
1. 引用的非空性,任何情况下,都不能使用指向空值的引用
2. 引用必须在声明时初始化,指针在声明时可以先不初始化
3. 使用引用不需要测试他的合法性,指针总是要测试他的合法性
4. 引用从一而终,
5. 引用可以被当作左值使用
C++中的智能指针:
6. shared_ptr,基于引用计数的智能指针。可随意赋值,直到内存的引用计数为0的时候这个内存会被释放。
循环引用:
Weak_ptr 弱引用解决循环引用问题;
循环引用为俩个智能指针成环互相指向,其要求都是计数为0时被释放,则都在等待对方先被释放。
Explicit:
c+中的关键字,防止隐士转换
Memcpy和strcpy的区别:
Strcpy是用来复制字符串使用已\0结束
Memcpy是按照字节copy有指定长度,适合各种类型的复制。
Union的存储
Union的存储问题
Union{
Chara[4];
Int b;
}
a[0] = 1;
a[1] = 2;
a[3] = 3;
a[4] = 4;
b = 0x0005;
则a中的值被变为了什么
因为一般的操作系统都为小端字节序
低地址 高地址
栈中的分配:a[ 0, 1, 2, 3 ]
Int b: 0x5 0x0 0x0 0x0
这样的存储方式导致,a[0]的值被变成了0x5 。。。。。
虚继承是为了解决钻石问题。
排序 时间复杂度
插入排序 O(n2)
冒泡排序
选择排序
希尔排序
快速排序 nO(logn)
堆排序
归并排序
基数排序 O()d(n+r)
其中稳定的排序:
冒泡,插入,归并,基数