奇虎360校园招聘2014后台研发二面经验

2015-04-08 17:58 作者 : 围观 : TAG标签: 面试 笔经 奇虎360 后台研


       职位类型:后台研礼仪


礼仪

       面试时间:2014校招

礼仪


求职信息

       招聘公司: 面试网


qzm4

       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


礼仪

奇虎360校园招聘2014后台研发二面经验 求职面试


面试网

       4、C++如何找到不同类型的成员方法?

面试网


求职面试

       什么是重载,相同参数不同返回值可以吗?为什么?对不同函数编译器会加什么参数?externC

面试问题


礼仪

       C++的特性,C中没有。函数的参数的类型、个数或者顺序不同,因此在编译的时候会编入参数信息,例如intf(inta,doubleb)编译后会是fdouble之类的,注意看没有返回值信息在里面。加了externC以后,编译器就按C标准编译了,因此所有的重载函数就都成了一个样子的。

礼仪


求职信息

       5、多态在现实中的应用,多态的实现原理 礼仪


面试问题

       问:sizeof空类为多少?为什么这么设计? 面试问题


面试问题

       答:sizeof一个空类是一个字节(char)。

礼仪


礼仪

       一个类能够实例化,编译器就需给它分配内存空间,来指示类实例的地址,这里编译器默认分配了一个字节(如:char),以便标记可能初始化的类实例,同时使空类占用的空间也最少(即1字节)

qzm4


礼仪

       问: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


qzm4

       进程间通信有哪些方式(Linux)?分别怎么实现? 礼仪


qzm4

       现有平行的几个进程,如果其中一个进程挂了,会影响其他线程吗?一个进程有多个线程,有一个挂了,对其他线程有影响吗?为什么?

面试问题


求职信息

       一般情况下,平行的进程之间一个挂了不会对其他进程造成影响,但是在个别操作系统中,父进程挂了也会终止子进程,这种现象称为“级联终止”。 求职面试


面试网

       三、TCP

面试网


qzm4

       画出三次握手,四次握手,为什么要三次和四次? 求职面试


求职面试

       讲讲滑动窗口机制 求职信息


求职面试

       关于time_wait为什么等待2MSL才关闭,如果有大量time_wait状态连接会出现什么问题?

面试问题


面试网

       四、数据结构 面试网


面试问题

       二叉树中序遍历的非递归实现

求职面试


礼仪

       链表倒序输出,不能改表链表结构,不能用任何自己开的辅助空间

qzm4


求职面试

       答:不能改变链表结构,那么就不能同倒转链表法。常见的思路就是用栈,不能自己开一个栈的话,那就唯有用递归咯。

求职信息


求职信息

       五、vim的替换语句,abc换成def qzm4


面试问题

       六、PHP字符串分解

礼仪


面试问题

       七、关于linux的调试和VS的断点调试原理 礼仪


求职信息

       能力有限,很多题目没有给出答案,希望知道答案的大神可以在评论中给出答案,指点一二。

qzm4


求职面试

       相关攻略: 礼仪

       

qzm4

        求职信息

        qzm4

       

面试网

        求职信息


面试网

求职信息

声明:奇虎360校园招聘2014后台研发二面经验来源于互联网,其版权均归原作者及其网站所有,本站虽力求保存原有的版权信息,但由于诸多原因,可能导致无法确定其真实来源,如果您对本站文章、图片资源的归属存有异议,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意!

相关文章