C++面试八股文

作者:牛妹
链接:2022春招C++工程师求职手册(全)_站内公告_牛客网
来源:牛客网
 

操作系统

1)说一说常用的 Linux 命令

2)静态库和动态库如何制作及使用,区别是什么

3)请你说说动态库静态库的区别和优缺点

4)简述一下 GDB 常见的调试命令

5)说一说进程调度算法有哪些

6)说一说什么是大端、小端,如何判断大端和小端

7)什么是孤儿进程,什么是僵尸进程,如何解决僵尸进程

8)说一说进程通信的方式有哪些?

9)说一说进程有多少种状态,如何转换

10)说一说 select 的原理以及缺点

11)说一说 epoll 的原理

12)请你说说写时拷贝

13)请你说说线程的通信方式

14)请你说说进程和线程的区别

15)请你说说线程和协程的区别

16)请你介绍一下死锁,产生的必要条件,产生的原因,怎么预防死锁

17)请你说说分段和分页

18)请你说说互斥锁和自旋锁

19)请你说说共享内存

20)请你说一说虚拟内存与物理内存

21)请你说说条件变量

22)请你介绍一下 I/O 多路复用

计算机网络

1)请你说说 TCP 和 UDP 的区别

2)请你说说 TCP 三次握手四次挥手过程

3)请你说说 OSI 七层模型

4)请你说说 TCP/IP 五层模型

5)请你说说 TCP 如何实现可靠传输

6)请你说说 TCP 和 UDP 的使用场景

7)请你说说 HTTP 和 HTTPS 的区别

8)请你说说 HTTP 状态码及其含义

9)请你说说 GET 和 POST 的区别

10)请你说说 TIME_WAIT

11)请你说说拥塞控制机制

12)请你说说 TCP 的流量控制

13)请你说说 HTTPS

14)请你说说 HTTPS 加解密的过程是怎么样的?

15)请你说说 TCP 粘包

16)UDP 怎么样可以实现可靠的传输?

17)请你说说滑动窗口

18)浏览器从输入 URL 开始到页面显示内容,中间发生了什么?

19)请你说说 CLOSE_WAIT

20)请你说说 HTTP1.x 和 HTTP2.0 的区别是什么?

21)请你说说对称加密和非对称加密

22)请你说说 DNS 解析过程以及 DNS 劫持

23)请你说说TCP超时重传机制,时间是多少

24)请你说说ARP协议,协议是怎么实现的,是怎么找到MAC地址的

数据库

1)请你说说 MySQL 的事务隔离级别

2)请你说说 innodb 和 myisam 的区别?

3)请你说说缓存穿透、击穿、雪崩的区别

4)请你说说 MySQL 索引,以及它们的好处和坏处

5)请你讲讲 B 树和 B+ 树

6)请你说说 MySQL 主从同步是如何实现的?

7)请你说说数据库索引的底层数据结构

8)请你说说聚簇索引和非聚簇索引

9)请你说说 Redis 如何与数据库保持双写一致性

10)请你说说数据库引擎有哪些,各自有什么区别

11)数据库为什么不用红黑树而用 B+ 树?

12)请你介绍一下数据库的 ACID

13)请你说说数据库的索引是什么结构,为什么不用哈希表

14)请你说说 InnoDB 的 MVCC

15)请你说说索引怎么实现的 B+ 树,为什么选这个数据结构?

16)请你说说乐观锁和悲观锁

C/C++语言基础

1)说一说 C++ 和 C 中 struct 的区别以及和 class 的区别

2)说一说 static 关键字的作用

3)说一说什么是野指针,怎么产生的,如何避免

4)说说 C 语言和 C++ 语言的区别

5)说说 const 和 define 的区别

6)请你说说 extern 的作用,extern变量在哪个数据段,为什么要 extern C

7)请你说说 const 的用法

8)请你说说各数据类型 sizeof 是多少,sizeof 指针是多少,sizeof 原理

9)请你说说 C 语言里面 volatile,可以和 const 同时使用吗

10)请你说说C++引用的概念

11)请你说说指针和引用的区别

12)说说内联函数和函数的区别,内联函数的作用

C++内存管理

1)简述 C++ 的内存管理

2)简述一下堆和栈的区别

3)说一说什么是内存泄露,如何检测

4)简述一下 C++ 中的内存对齐

5)请你说说 malloc 的实现原理

6)请你说说 new 的实现原理,new 和 malloc 的区别

7)请你说说 delete 和 free 的区别

面向对象

1)简述一下什么是面向对象

2)简述一下 C++ 的重载和重写

3)简述一下面向对象的三大特征

4)简述一下浅拷贝和深拷贝

5)简述一下 C++ 中的多态

6)简述一下虚函数的实现原理

7)什么是纯虚函数,有什么作用

8)虚析构函数有什么作用

9)请你说说重载,复写,隐藏的区别

10)请你说说什么情况会调用拷贝构造,什么时候会调用赋值操作

11)请你说说虚函数可以是内联函数吗

12)请你说说虚函数和纯虚函数的区别

13)为什么将析构函数设置成虚函数

14)简述一下 C++ 中的四种类型转换

STL

1)说一说 STL 中有哪些常见的容器

2)STL 容器用过哪些,查找的时间复杂度是多少,为什么?

3)请你说说 STL 中容器的类型,每种分别有哪些容器

4)说一说 vector 和 list 的区别,分别适用于什么场景?

5)简述 vector 的实现原理

6)请你说说迭代器失效原因,有哪些情况

7)请你说说 vector 的扩容机制,扩容以后,它的内存地址会变化吗?

8)请你说说 deque 的实现原理

9)请你说说 set 的实现原理

10)请你说说 map 实现原理,各操作的时间复杂度是多少

11)请你说说红黑树的特性,为什么要有红黑树?

12)请你说说 unordered_map 实现原理

13)请你说说导致哈希冲突的原因和影响因素,哈希冲突的解决方法

14)请你说说 map,unordered_map 的区别

C++新特性

1)说说 C++ 中智能指针和指针的区别是什么?

2)weak_ptr 如何解决 shared_ptr 的循环引用问题?

3)shared_ptr 怎么知道跟它共享对象的指针释放了

4)请你回答一下智能指针有没有内存泄露的情况

5)简述一下 C++11 中的可变参数模板新特性

6)请你说说 C++11、C++14、C++17、C++20 都有什么新特性

7)请你说说 auto 和 decltype 如何使用

8)请你说说三种智能指针实现原理和使用场景,以及其线程安全

9)请你说说 unique_ptr 的实现原理及使用场景

10)请你说说左值、右值、左值引用、右值引用、右值引用的使用场景

11)请你说说 C++ Lambda 表达式用法及实现原理

设计模式

请你说说单例设计模式

你可能感兴趣的:(C++开发,c++,面试)