当前位置: 首页 > 面试经验 >

好未来C++后端日常实习 已OC

优质
小牛编辑
133浏览
2023-03-28

好未来C++后端日常实习 已OC

好未来 C++后端 日常实习 OC

一面 2023.01.10 (35分钟)

1.指针和引用的区别

2.C++11中提供了哪些智能指针

shared_ptr,weak_ptr,unique_ptr

3.实践中用过哪些

4.内存泄漏怎么定位/排查

5.GDB打印栈信息

6.GDB怎么切换线程

7.什么是线程安全

多线程对临界资源的访问

8.有遇到过死锁么

9.了解C++11中本身提供的thrad库么

10.auto和decltype的区别

auto针对变量,decltype针对表达式,二者结合可以实现函数类型推导

// C11
template <typename T>
auto func2(T& t) -> decltype(t){ //后置语法
return t;
}
// C14
template <typename T>
decltype(auto) func1(T& t){
return t;
}

11.面向对象的特征

12.多态怎么实现的

重载、虚函数、模板

13.静态多态底层机制是什么,怎么找到不同函数的

对函数进行重新命名,C中函数返回值,形参相同编辑器生成的函数名一致,C++中编辑器生成的函数名则不同,编译时根据形参类型等信息找到其真实函数名

14.C++中vector和list有哪些区别,适用于哪些业务

15.list底层为什么使用双链表

存取方便

16.STL的实现中为什么把数据域和指针域分开,有什么好处

适配迭代器,迭代器只需要指针域,只有找到后才会访问数据域,降低消耗

17.单例模式的基本原理

18.C++中有没有提供其他方式实现类似功能

static

19.单例中的get方法为什么是static的,可不可以作为成员函数

不可以,static函数可以通过类名直接调用,不需要声明对象

单例私有化了构造函数,外部不可以声明对象,因此无法调用成员函数get

20.数据库中常见的索引

21.主键索引和唯一索引区别

22.Redis常用的数据结构

23.跳表的基本原理

按顺序存储,有很多层,每层链式连接,若查找小于当前值则去下一层的上一个结点继续查找

24.三次握手和中间状态

25.TCP的各种状态

26.TCP有多少种状态

[终于搞懂了 TCP 的 11 种状态 ,太不容易了… - 腾讯云开发者社区-腾讯云 (tencent.com)](https://cloud.tencent.com/developer/news/646106#:~:text=TCP 的11种状态分别对应,TCP 三次握手过程的5种状态和TCP四次挥手断开过程中的6种状态。 如上图,就是11种状态,在整个TCP建立连接和断开连接的整个过程)

27.看代码找错(生产者消费者模式的消费函数)不能使用if判断队列为空,用while

void comm() {
m_mutex.lock(); // 加锁,超出作用域解锁
if(que.empty()) { // 错误,应为while
conit.wait(); // wait()会释放锁
}
//TODO
}

28.深入问

多线程在wait()停止时,若有任务进来,会唤醒全部线程,但是只有一个线程真正能拿到任务进行todo,剩余线程不能返回wait()状态,进行todo取出任务时,任务队列为空,程序崩溃。

29.select和epoll区别

30.什么是用户态,什么是内核态

二面 2023.01.12 (20分钟)

1.TCP和UDP的区别

2.UDP使用场景

3.对音视频有了解么

4.TCP的拥塞和UDP的拥塞在业务层有什么区别

5.怎么达到高性能

6.分发的时候拥塞,线程达到上限怎么办

答:定时器(保底方法);将任务持久化,等线程池负荷小的时候再重写生成任务去执行

(1条消息) 5.队列技术(拥塞管理)_土豆aaa的博客-CSDN博客_队列技术

7.学生信息表,查询多少记录(count)

8.取出成绩合格的学生数量(count)

9.查询每个分数对应的人数

10.在不同局域网怎么实现通讯,原理是什么(NAT协议)

11.公网地址对应好多台电脑,怎么找到是哪一台

12.NAT协议了解么

13.算法了解么

14.AI了解么

#实习##软件开发2023笔面经#
 类似资料: