一面
1、 基础知识
- CS的专业课学过什么
- 进程和线程的区别;
- 线程开销更小,怎么体现;
- 线程需要虚拟内存的操作吗;
- 进程使用的时候,所使用的内存空间的大小是确定的吗;
- 进程空间使用超过要求,接下来还能扩容、增加吗?
- 上下文都有什么;
- 提到的寄存器介绍一下;PCB介绍一下;
- 寄存器和内存的了解;
- 线程间通信手段 ;
- 同步和互斥的介绍;锁的介绍;
- 介绍一下用过的锁;
- 自旋锁介绍;自旋锁偏好应用;(锁的持有时间比较短)
- 介绍一下线程池;线程池怎么实现线程重用的;
- https 的介绍;更细节介绍;
- 怎么保证安全性;
- 非对称加密、对称加密;公私钥怎么操作的;
2、 编程题
- 全排列;回溯;
- 子集问题;回溯;
- 1~5的随机数怎么生成 1~25;力扣470. 用 Rand7() 实现 Rand10()
同学们的字节面经
1、教育端
-
select epoll -
物理内存、虚拟内存、 -
进程间通信方式 -
共享内存拷贝次数 -
http、基本属性、请求包含什么; -
如何建立ssl -
证书认证过程 -
http3.0 为何适用UDP -
ASCII 和 Unicode的区别 -
keep alive :http和tcp 的区别; -
动态库、静态库、静态链接、动态链接;
2、抖音
- 线程进程、
- new malloc
- 函数重载
- 多态、虚函数
- 局部变量空间
- 全局变量空间
- 动态库、静态库、静态链接、动态链接;
- 多进程引入动态库的全局变量问题
- C++类型安全
- socket
3、小程序客户端
- 进程线程、通信方式、及其应用场景;同步关系
- tcp、udp;握手;http是tcp?
- 指针、引用;左值右值引用
- 智能指针、weak_ptr
- shared_ptr安全吗;底层实现;
- new、malloc;malloc 怎么分配内存的,物理内存吗
- 内联桉树、虚函数、静态函数、内联为了做什么替换
- extern c
- 析构为啥虚函数、构造为啥不是
- vector list 复杂度
- map、unordered_map、C++对unordered_map做了什么优化
|