初面
因为在 Boss 上投递了润和软件,hr 就直接联系我今天下午 7:00 的初试,问的问题也比较基础:
- 简单介绍一下 C++ Linux 轻量级 WebServer 这个项目。
- 线程池中的线程如何保持同步,即线程安全问题。
- 进程和线程有什么区别。
- 多进程中的地址空间是如何实现隔离的。
- https 是什么。
- OSI 的七层参考模型是否有了解。
- 你还用过哪些服务器的并发模型呢(apache、nginx 等)。
- 是否有用过 Linux 终端。
- 快速排序的思想。
- C++ 解释封装、继承和多态的特性。
在面试过程中发现面试官主要做驱动的,所以开发中以 C 语言为主,C++ 方面的知识没怎么问,主要问的是多进程、多线程和网络编程方面的问题,很尴尬的是多进程和多线程还没咋复习,还是靠着以前的知识过关,得好好再补一下。
整个过程 17 分钟就结束了,应该过了,后面还有其它技术面。
复试
复试 1h 左右,问的问题也相对比较基础,但比初面要深一点:
- 简单做下自我介绍。
- 在声网的主要工作是什么,以及为什么要离职呢。
- select 和 epoll 有什么区别,select 和 epoll 各自可设置的 fd 集合大小是多大,select 默认最大 1024 可以改吗。
- 为什么要用标准库容器封装的 char,实现自动增长的缓冲区。
- 读线程和写线程对缓冲区的访问是否有加锁,以及具体对什么进行了加锁。
- map 和 unordered_map 的区别。
- unordered_map 最坏查找的时间复杂度是多少,如何设计保证最坏的时间复杂度不会达到 O(n)。(rehash 不行,得结合 AVL 树一起使用)
- 什么是左值和右值,右值引用和移动语义又是什么,以及右值引用可取地址吗。
- 在使用移动构造函数的时候,需要有什么特殊的判断,如果赋值和被赋值是同一个对象没有加判断会发生什么。
- 现场写一下单例模式。
如下是使用静态局部对象实现的单例模式:
#include <iostream>
class Singleton {
public:
static Singleton* GetSingleton() {
static Singleton single;
return &single;
}
private:
Singleton() {}
Singleton(const Singleton& single) {}
~Singleton() {}
};
int main() {
Singleton* p1 = Singleton::GetSingleton();
Singleton* p2 = Singleton::GetSingleton();
Singleton* p3 = Singleton::GetSingleton();
std::cout << p1 << ' ' << p2 << ' ' << p3 << std::endl;
return 0;
}在写代码期间还问了下之前公司是不是在服务器上编写 & 编译代码,当然不是,一般都是本地写完并调试代码后通过 Jenkins CI 出版本,在测试环境验证。
最后问了下岗位的职责,对我来说进来会先对代码进行单元覆盖测试和代码重构,之后再进行 EDA 软件的开发,而且 EDA 软件开发比较难,所以需要一定的适应期。
综面
这次是技术总监来面,问的问题很难,不知道是不是故意***难我,我自己查了一个问题就是全局静态变量只能在本源文件中用,而面试官则问全局静态变量在不同文件中初始化的顺序...,所以我感觉面试官自己都不太清楚。
- 简单做下自我介绍。
- 讲下虚函数,多态的底层实现(涉及虚函数表和虚表指针),空类所占用的大小,当一个类中只有虚函数,实例化了 100 万个对象,因为虚表指针都指向了同一个基类地址,如何优化内存空间。
- if else 和 switch 性能上有什么差异。
- 全局静态变量在多个文件中对应的初始化顺序是什么(X,当时我都没听懂这是啥意思,不就是它声明的顺序?)。
- 数据结构方面除了 vector、list、map 和 unordered_map 外,是否用过 tree 和 graph。
- 要查找某个目录下的某个文件,再将对应文件中含有 "aaaaa" 字符串所在行的上下 5 行的信息打印出来,你会用 shell 脚本怎么写。
- 你常用的调试工具是什么,coredump 如何产生以及 gdb 如何使用,说一下你使用 gdb 的调试过程。
- 关于你调试过最难的关于内存的问题是什么。
- 你使用的构建编译的工具是什么(blade 3),CMake 是否有用过。
最后反问环节我问了下上面第三个问题,因为我想知道面试官知不知道,结果让我自己去查。另外关于该岗位基本也是做一些杂活,说什么 EDA 是硕士 / 博士去做的,当然后期也可以往这方面发展。这三面面下来就让我做这,应届生都不如,我 TM 也是无语了。
然后还在问是否接受加班、最低期望薪资和一些个人信息比如是否结婚、父母工作,就算这 Offer 给我了我也不会去,艹。
评论 (3)




