经纬恒润 一面
1. 自我介绍
2.介绍项目的整体结构
3. OSI网络模型 4层模型的每层的作用 (每层作用这块没总结过,答的不是很好)
记录 靠谱答案。
4.C++ 多态的底层原理 (构造函数 什么时候和虚函数表有相连等) 这块答的不太好 需要仔细看看。
记录在这里吧。
一:虚函数表指针(vptr)创建时机
vptr跟着对象走,所以对象什么时候创建出来,vptr就什么时候创建出来,也就是运行的时候。
当程序在编译期间,编译器会为构造函数中增加为vptr赋值的代码(这是编译器的行为),当程序在运行时,遇到创建对象的代码,执行对象的构造函数,那么这个构造函数里有为这个对象的vptr赋值的语句。
二:虚函数表创建时机
虚函数表创建时机是在编译期间。编译期间编译器就为每个类确定好了对应的虚函数表里的内容。
所以在程序运行时,编译器会把虚函数表的首地址赋值给虚函数表指针,所以,这个虚函数表指针就有值了。
5. epoll和select的区别
6. 项目的日志系统详细询问
7. 同步和异步的区别
说的有点模糊,这里记录标准答法:
同步:同步是指一个进程在执行某个请求的时候,如果该请求需要一段时间才能返回信息,那么这个进程会一直等待下去,直到收到返回信息才继续执行下去。
异步:异步是指进程不需要一直等待下去,而是继续执行下面的操作,不管其他进程的状态,当有信息返回的时候会通知进程进行处理,这样就可以提高执行的效率了,即异步是我们发出的一个请求,该请求会在后台自动发出并获取数据,然后对数据进行处理,在此过程中,我们可以继续做其他操作,不管它怎么发出请求,不关心它怎么处理数据。
8.webbench 这个测试工具,如果没测试工具该怎么办呢?
这块我详细介绍了webbench这个工具的原理和作用,主要是fork 然后说自己可以去主动fork子进程之类的、、
9. 讲一下重写、重载和隐藏
在使用中弄清楚隐藏的区别之后,还需要明白怎么使用。下面说以下隐藏,重写,重载的区别:
与重载的区别:
在父类与子类中,函数名相同,参数不同,无论父类中的同名函数是否含有virtual关键字,都是隐藏;
与重写的区别:
在父类和子类中,函数名相同,参数相同,父类中的同名函数没有virtual关键字,为隐藏。
10 详细介绍了公司是做什么的,主要是汽车的部件之类的,可以说可以提前学习一下outsider之类的内容,提前适应工作内容。
面试整体感觉良好。
#经纬恒润#