奇虎360服务器端研发工程师 面试经历(2013年10月)

匿名网友 匿名网友 发布于: 2016-02-26 00:00:00
阅读 140 收藏 0 点赞 0 评论 0

面试形式:一对一,聊天+写代码。

面试题目:

1.C和C++

● 堆和栈的区别

● new和malloc的区别

free和delete如何知道应该释放多少内存

● 写个类A,声明类A指针指向NULL,调用类A的方法会有什么后果,编译通过吗?

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

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

● 多态在现实中的应用,多态的实现原理

sizeof空类为多少?为什么这么设计?

AB两个类各自有个虚函数,C继承A和B,sizeof(C)为多少?

构造函数能声明为虚函数吗,析构函数呢?为什么?

● 关于地址对齐

64位是什么意思,CPU64位指的是什么,操作系统64位指的是什么?

为什么要有地址对齐,CPU如何取址?

2.进程与线程

两者的区别——资源分配,调度,通信

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

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

3.TCP

画出三次握手,四次握手,为什么要三次和四次?

讲讲滑动窗口机制

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

4.数据结构

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

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

5.vim的替换语句,abc换成def

6.PHP字符串分解

7.关于linux的调试和VS的断点调试原理

满意的地方:

全都是聊技术问题,没有别的乱七八糟,挺好。

不满意的地方:

无。

评论列表
文章目录