百度提前批-网盘国际部-C++面经

一面(2023.08.22)

1、MySQL 事务 ACID、MVCC 原理

2、索引 B+ 树结构,如何优化索引、索引失效情况、分析耗时操作

3、TCP SYN 攻击、怎么解决,拥塞控制算法
了解半连接队列(SYN队列)和全连接队列(Accept队列),参考:xiaolincoding
SYN 攻击 是一种常见的 DoS/DoSS 攻击

4、算法:279. 完全平方数

二面(2023.08.25)

1、TCP CLOSE_WAIT 是什么,断开连接的各种状态
主动断开方有 TIME_WAIT,被动方才有 CLOSE_WAIT(收到 FIN 就会进入),别弄混了
考虑常见客户端主动断开连接、服务端被动断开的情况
客户端:FIN_WAIT_1 --> FIN_WAIT_2 --> TIME_WAIT --> CLOSED
服务端:CLOSE_WAIT(收到 FIN) --> LAST_ACK --> CLOSED

2、TCP 半连接队列

3、epoll 原理,有什么不同的触发方式

4、协程了解吗

5、DASH 协议,连接过程

6、MySQL 脏读和幻读,有哪些锁

7、Redis 结构,跳表(没看过...)

8、手撕 LRU

---最近被共享了,太难了,求捞

#24届软开秋招面试经验大赏##百度共享#
全部评论

相关推荐

在JavaScript中,堆和栈是两种不同的内存管理方式,用于存储不同类型的数据。堆(Heap): 堆是用于动态分配内存的区域,用于存储引用类型的数据,如对象和数组。在堆中分配的内存不会自动释放,需要通过垃圾回收机制来回收不再使用的内存。堆的大小通常比栈大,并且可以动态增长和收缩。栈(Stack): 栈是用于管理函数执行上下文和存储基本类型值的一种数据结构。每当执行一个函数时,都会在栈中创建一个新的执行上下文,包括函数的参数、局部变量和函数的返回地址。当函数执行完成后,对应的执行上下文会被销毁,栈会自动释放相关的内存。栈的大小通常比较小且固定,内存分配由系统自动管理。下面是堆和栈的一些区别:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=d59bf6cbe74a47848bb179590bdf5f59存储内容:堆用于存储引用类型的数据,如对象和数组;栈用于存储基本类型的数据,如布尔值、数值和字符串,以及函数执行的上下文。分配方式:堆通过动态分配内存来存储数据;栈通过在执行上下文中的栈帧上分配固定大小的内存来存储数据。大小和生长性:堆的大小通常比栈大,可以动态增长和收缩;栈的大小通常比较小且固定,由系统自动管理。管理方式:堆的内存管理需要使用垃圾回收机制来回收不再使用的内存;栈的内存管理由系统自动处理,通过栈指针的移动来分配和释放内存。生命周期:堆中分配的内存不会自动释放,需要通过垃圾回收来回收内存;栈中的内存由系统自动管理,在函数执行完成后自动释放。
点赞 评论 收藏
转发
3 18 评论
分享
牛客网
牛客企业服务