字节 c++ 一面面经
-
你使用socket,说说socket是怎么通信的?
-
说说socket 通信的流程?
-
listen是阻塞的还是非阻塞的?阻塞和非阻塞有什么区别?
-
accept取出连接后,怎么处理?
-
必须是三次握手吗?三次握手的流程
-
你说的epoll,他和poll的区别是什么
-
poll和epoll谁先出现的?改进了什么
-
epoll是怎么回调的?poll的轮询的怎么轮询的
-
进程间通信方式有哪些?
-
分别说说这些方式怎么实现的
-
匿名管道和非匿名分别是怎么实现的?具体的流程是什么?管道是怎么让不同的进程通信的
-
消息队列和管道有什么区别?
-
进程和线程间的同步方式分别是?有什么区别
-
进程和线程有什么区别?
-
你说的加锁,说说锁是怎么实现的
-
操作系统中有哪些锁?分别介绍下这些锁
-
你刚才说到了乐观锁和悲观锁,说说具体是怎么实现这两种锁的
-
在什么情况下你会用到这两种锁,代码是怎么写的
-
你这里加锁的原理是什么(我真的裂开,就直接加互斥锁锁住啊)
-
声明函数的时候,后面加上default 或者delete是什么意思?
-
final关键字作用
-
volatile关键字是干嘛的?
-
堆和栈有什么区别,
-
什么样的情况下用栈
-
new和malloc都可以申请栈,(我:对的,new和malloc都可以申请堆,也不知道是故意说错的还是坑我的),那使用什么进行释放
-
用户态和内核态有什么区别
-
你刚才说的那个锁,如果我设置一个主机名,涉及到的用户态和内核态以及寄存器中断等,整个过程是什么样的?
-
有的析构函数为什么设置成虚函数,不设置行不行
-
析构函数是protect权限下,怎么调用
-
常量指针和指针常量的区别
-
左值右值有什么区别?
- 你刚才说的a=5,5是右值,没有内存,那5是保存在哪里的呢?a是怎么知道等于5的呢
- 说一下LRU的思想
- 昨天面的,还有一些记不清楚了...
代码题:
-
O(1)复杂度求栈的最小值
-
给你一个不含重复数字的数组,给你一个值x,找到这个数组中和为x的任意个数的集合(回溯)
那么今天面试就到这里了,辛苦了。
内心os:没有反问???你得让我问一句啊........
总时长:1h20min
总结:代码都写出来了,理论性的基本上 都回答出来了,但是涉及到底层的都不会。连反问都不想给,估计凉了....
#字节跳动秋招提前批##字节跳动面经#