快手C++开发工程师 (一面)
一面 (1h)
面试官介绍了一下部门的业务,是搜索相关的部门。
自我介绍。
问了一下有了源码为什么要有补码?
会输出什么东西?
int a=1-2+1; size_t t=a; std::cout<<t;
说说看你是怎么理解进程和线程的。
我看你简历上写了了解操作系统的内存管理,那么讲一下malloc 2000K和malloc 1k底层实现有什么不同?两种实现的方式有什么样的优缺点呢?
C++的容器的储存空间是在栈上还是堆上?他们底层的分配空间和我们直接malloc的有什么不同呢?
C++智能指针是不是线程安全的呢?只考虑一个智能指针对象不考虑他指向的内存。C++智能指针的引用计数变量是在栈上还是堆上呢?
讲一下C++的右值和左值?你知道std::move的实现原理吗?
在使用vector的时候有什么需要注意的地方吗?
多态的实现?多重继承下子类重写虚函数和没有重写虚函数情况下虚函数表的结构。虚函数表指针是几维指针?
讲一下TCP拥塞控制的目的?
TCP怎么确保可靠传输的?