奇虎360校园招聘2014后台研发二面经验
职位类型:后台研发 礼仪
面试时间:2014校招
礼仪
求职信息
招聘公司: 面试网
360二面主要是技术复试,以下我能回想起的面试题目,仅供大家参考。
面试问题
一、C和C++ 礼仪
面试网
1、堆和栈的区别
面试网
堆和栈均是计算机硬件层面的上概念,操作系统给每个进程分配4G(前提32位)的虚拟内存空间。内存空间分别由堆、栈、数据段和代码段组成。总体来说,堆和栈的区别主要有一下几点:
面试问题
求职面试
1)存的值的类容
qzm4
求职面试
堆中的值一般是由new、malloc、realloc分配的,存值类容不固定。可以往里写任何类型的值。栈里存的是函数返回地址,函数参数和局部变量等。
求职面试
2)分配与管理
面试网
面试问题
堆是动态分配的,需要程序员调用new、malloc等分配,调用delete,free等释放。栈是由编译器将源代码编译成一条条“push”“pop”指令,CPU执行到“push”就自动压栈,执行到“pop”就自动弹栈。无需程序员管理。push、pop指令是编译器自动生成的,无需显示告诉其何时“push”何时“pop”,达到了自动管理 面试网
求职信息
注意:堆是动态分配的(malloc、new、realloc),栈可以静态分配也可以动态分配(alloca函数) 求职信息
3)生长方式不同 面试网
栈是自顶向下增长,堆的增长方式有三种:首次适应、最佳适应和最差适应 求职面试
求职信息
4)是否产生碎片
qzm4
礼仪
栈不会产生碎片,堆会产生,尤其是频繁分配和释放的时候 求职面试
qzm4
5)空间大小不同:win32中,堆可达4G;VC中栈默认1M(可以修改)。 求职面试
面试网
2、new和malloc的区别
qzm4
面试网
new是C++里的运算符,而malloc是c里面的函数。C++之所以要引入new关键字是因为malloc是封装好的库函数,无法修改内部结构。但是,在C++里,如果不是内部数据类型,在绝大多数情况下分配内存的时候是要调用构造函数,释放内存的时候要调用析构函数的(注意并非所有的类都会调用,一些极其简单的类是没有构造函数和析构函数的,分配方式和C完全一致)。由于malloc无法实现,因此C++里增加了new运算符。可以这么理解:new=malloc+构造函数。delete=free+析构函数。而且new和delete还可以申请数组和释放数组,如newint[10],delete[]等。
qzm4
free和delete如何知道应该释放多少内存
面试问题
面试问题
答:malloc和new在分配内存的时候会在内存块前添加一个头部,通常是四字节(4G)或八字节(64位的,多少G就自己算吧),然后在freep或deletep的时候找到p前面四字节或八字节大小就知道应该释放多少内存了。 求职面试
qzm4
3、写个类A,声明类A指针指向NULL,调用类A的方法会有什么后果,编译通过吗? 求职面试
求职信息
编译可以通过,运行时会产生段错误(segmentationfault),指针指零的常见错误。 qzm4
求职面试
面试网
4、C++如何找到不同类型的成员方法?
面试网
求职面试
什么是重载,相同参数不同返回值可以吗?为什么?对不同函数编译器会加什么参数?externC
礼仪
C++的特性,C中没有。函数的参数的类型、个数或者顺序不同,因此在编译的时候会编入参数信息,例如intf(inta,doubleb)编译后会是fdouble之类的,注意看没有返回值信息在里面。加了externC以后,编译器就按C标准编译了,因此所有的重载函数就都成了一个样子的。
礼仪
求职信息
5、多态在现实中的应用,多态的实现原理 礼仪
面试问题
问:sizeof空类为多少?为什么这么设计? 面试问题
面试问题
答:sizeof一个空类是一个字节(char)。
礼仪
礼仪
一个类能够实例化,编译器就需给它分配内存空间,来指示类实例的地址,这里编译器默认分配了一个字节(如:char),以便标记可能初始化的类实例,同时使空类占用的空间也最少(即1字节)
礼仪
问:sizeof一个只有一个虚函数的类等于多少? 求职信息
面试问题
答:等于sizeof(int),即一个指针的大小。一般32位系统下是4个字节。
求职信息
面试网
问:AB两个类各自有个虚函数,C继承A和B,sizeof(C)为多少? 面试网
求职面试
答:等于2*sizeof(int),即2倍指针大小,一般32位系统下是8个字节。
qzm4
求职信息
问:构造函数能声明为虚函数吗,析构函数呢?为什么? 求职信息
6、关于地址对齐
面试问题
面试问题
64位是什么意思,CPU64位指的是什么,操作系统64位指的是什么?
求职信息
为什么要有地址对齐,CPU如何取址?
面试问题
qzm4
哪些情况会遇到地址对齐,试举一例?
礼仪
二、进程与线程 求职信息
面试网
两者的区别——资源分配,调度,通信 面试网
求职信息
os给进程和线程都分配哪些资源? qzm4
进程间通信有哪些方式(Linux)?分别怎么实现? 礼仪
qzm4
现有平行的几个进程,如果其中一个进程挂了,会影响其他线程吗?一个进程有多个线程,有一个挂了,对其他线程有影响吗?为什么?
面试问题
一般情况下,平行的进程之间一个挂了不会对其他进程造成影响,但是在个别操作系统中,父进程挂了也会终止子进程,这种现象称为“级联终止”。 求职面试
三、TCP
面试网
qzm4
画出三次握手,四次握手,为什么要三次和四次? 求职面试
讲讲滑动窗口机制 求职信息
求职面试
关于time_wait为什么等待2MSL才关闭,如果有大量time_wait状态连接会出现什么问题?
面试问题
面试网
四、数据结构 面试网
二叉树中序遍历的非递归实现
求职面试
礼仪
链表倒序输出,不能改表链表结构,不能用任何自己开的辅助空间
qzm4
求职面试
答:不能改变链表结构,那么就不能同倒转链表法。常见的思路就是用栈,不能自己开一个栈的话,那就唯有用递归咯。
求职信息
五、vim的替换语句,abc换成def qzm4
面试问题
六、PHP字符串分解
礼仪
面试问题
七、关于linux的调试和VS的断点调试原理 礼仪
能力有限,很多题目没有给出答案,希望知道答案的大神可以在评论中给出答案,指点一二。
求职面试
相关攻略: 礼仪
求职信息
qzm4
求职信息
面试网
声明:奇虎360校园招聘2014后台研发二面经验来源于互联网,其版权均归原作者及其网站所有,本站虽力求保存原有的版权信息,但由于诸多原因,可能导致无法确定其真实来源,如果您对本站文章、图片资源的归属存有异议,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意!