360-C++-面试经验

以下内容来自于应聘者回忆整理

很多同学都想得到360的实习或者校招机会。那从过来人的角度谈谈,要通过360的实习、校招面试,都有哪些经验和注意事项呢?今天就跟大家分享一下。

总体情况:全程大概 40 分钟

1、没有自我介绍,直接开始问项目情况。

2、C++、网络编程、操作系统、数据结构等问题。

题目有:

1、项目介绍

2、随机森林的过程和细节(课题中用到了随机森林)

3、项目中用到的 C++技术

4、基类的析构函数不是虚函数会怎么样?

派生类中的那片内存就不会被释放,从而造成内存泄漏  

5、堆和栈的内存

(1)应用程序所有的部分都使用,然后通过一个线程运行来使用。(2)不论对象什么时候创建,他都会存储在中,包含它的引用。  

6、堆内存的申请和释放

堆上的内存由程序员显式的申请并显式的释放,如果只申请不释放,便会造成内存泄露,申请后重复释放,则会造成程序崩溃。  

7、new/delete 和 malloc/free 区别

malloc/free 则是库函数,而 new/delete 是运算符; + malloc 开辟空间需要手动计算大小并传入,new 是后接类型编辑器自己计算; + malloc 返回类型为 void*,使用时需要强制转换,new 返回类型就是后接的类型  

8、三次握手和四次挥手,中间过程的状态变化

9、time_wait 是哪一端的状态,为什么要 time_wait

(1)可靠的终止TCP连接。

(2)保证让迟来的TCP报文有足够的时间被识别并丢弃。

10、服务端主动断开连接会怎么样?

如果服务端主动关闭连接,那么服务端就会先发送fin,最后要有个2MSL的TIME-WAIT。 如果服务端在一段时间内主动关闭的连接比较多,则服务端会有大量的TIME-WAIT状态的连接要等2MSL时间,在Windows下默认为4分钟。  

11、进程和线程的区别

进程和线程都是一个时间段的描述,是CPU工作时间段的描述,不过是颗粒大小不同。

注意这里描述的进程线程概念和实际代码中所说的进程线程是有区别的。编程语言中的定义方式仅仅是语言的实现方式,是对进程线程概念的物化。

12、查看进程和线程

查看所有进程信息,可以使用top命令 查看指定进程的信息,使用top -p 进程id,查看指定进程下的所有线程信息,可以使用top -H -p 进程id  

13、C++生成库文件后做什么

14、进程间通信方式

(1) 匿名管道通信

(2) 高级管道通信,

(3)有名管道通信

(4) 消息列队通信

(5)信号量通信

(6)信号

(7)共享内存通信

(8)套接字通信

15、线程同步

16、平衡树单旋转

17、二叉树镜像

18、用 5 升和 3 升的桶打 4 升水  

想要更多360实习、校招的机会,请点击这里

  • 1、刺猬实习遵循行业规范,任何转载的稿件都会明确标注作者和来源
  • 2、刺猬实习的原创文章,请转载时务必注明"来源:刺猬实习",不尊重原创的行为刺猬实习或将追究责任
  • 3、作者投稿可能会经刺猬实习编辑修改或补充。

相关推荐