Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CPP] 知识点QA #51

Open
Sphinxes0o0 opened this issue Feb 17, 2024 · 0 comments
Open

[CPP] 知识点QA #51

Sphinxes0o0 opened this issue Feb 17, 2024 · 0 comments

Comments

@Sphinxes0o0
Copy link
Owner

编程语言C++
C++primer5笔记代码资料
volatile static const extern等关键字
宏定义和展开、内联函数区别
常用库函数实现
malloc,strcpy,strcmp的实现,常用库函数实现,哪些库函数属于高危函数
STL原理及实现
虚函数的作用和实现原理,什么是虚函数,有什么作用?
纯虚函数,为什么需要纯虚函数?
为什么需要虚析构函数,什么时候不需要?
内联函数、构造函数、静态成员函数可以是虚函数吗?
构造函数中可以调用虚函数吗?
为什么需要虚继承?虚继承实现原理解析
虚函数是针对类还是针对对象的?
同一个类的两个对象的虚函数表是如何维护的?
C++ 内存分配机制
指针
迭代器与普通指针有什么区别
C++的智能指针及其原理
悬挂指针和野指针有什么区别?
指针常量和常量指针的区别
指针和引用有什么区别呢?
如何避免悬挂指针?
override和overload的区别
写string类的构造,析构,拷贝函数
C++中类成员的访问权限有那些?
C++多态的实现有那几种?他们有什么不同?
C++中右值引用有什么作用?
面向对象的三大特征是什么
静态分配内存和动态分配内存有什么区别?
C++结构体内存对齐
讲一讲C++中的原子操作有那些?
简单说说STL中的优先级队列是如何实现的?
C++中动态链接库和静态连接库的区别是什么?
在C++中,对一个对象先malloc后delete这样使用可以吗?有什么风险?
在C++中,三个全局变量相互依赖,程序应该如何初始化呢?300个呢?
STL中的优先级队列是如何实现的?
如果拿到虚函数表的储存地址,是否可以改写虚函数表的内容?
在C++中为什么需要深拷贝,浅拷贝会存在哪些问题?
如何构造一个类使得只能在堆上或者栈上分配内存?
什么是C++的内存模型?
指针和引用在内存中的表现形式有何不同?
内存映射文件是什么?如何用它来处理大文件?
C++中结构体内存布局的规则是什么?
在C++中,用堆和用栈谁更快一点?
C++中struct和class有什么区别?
如果A这个对象对应的类是一个空类,那么sizeof(A)的值是多少?
如果A这个指针指向一个数组,那么sizeof(A)的值是多少?
如果A是某一个类的指针,那么在它等于nullptr的情况下能直接调用里面的A对应类里面的public函数吗?
STL中一般都有那些常见的算法库呢?
C++中,结构体可以直接赋值吗?
#define和const的区别有那些?
在C++的map中,[]与insert有那些区别?
在32位和64位系统中,指针分别为多大?
weak_ptr是如何解决shared_ptr循环引用的?
虚函数是否可以声明为static?
如何使用gdb来定位C++程序中的死锁?
C++中常用的类优化技术有那些?
C++的atomic代码底层是如何实现的?
原子变量的内存序是什么?
什么是左值?什么是右值?有什么不同?
什么是完美转发?
C++中四种cast的转换?
内存池是什么?在C++中如何设计一个简单的内存池?
STL中,map的底层是如何实现的?
STL中,set的底层是如何实现的?
set,mutiset,map,mutimap之间都有什么区别?
在C++的算法库中,find()和binary_search()有什么区别?
lower_bound()和upper_bound()有什么区别?
为什么需要allocator?他在STL中有什么作用?
什么是RAII原则,他在STL是怎么应用的?
STL容器是线程安全的吗?
什么是泛型编程,他在STL中是怎么使用的?
如何选择合适的STL容器
数据结构与算法
数据结构与算法学习攻略
设计模式
C++设计模式
C++单例模式
用C++设计一个不能被继承的类
如何定义一个只能在堆上定义对象的类?栈上呢
类构造和析构的顺序
操作系统
linux的内存管理机制,内存寻址方式,什么叫虚拟内存,内存调页算法,任务调度算法
锁:互斥锁,乐观锁,悲观锁
死锁必要条件及避免算法
动态链接和静态链接的区别
常见的信号、系统如何将一个信号通知到进程
linux系统的各类同步机制、linux系统的各类异步机制
如何实现守护进程
标准库函数和系统调用的区别
协程是什么,为什么需要协程
进程的状态转换有那些?
什么是进程?什么是线程?他们的区别是什么?
进程间的通信方式有那些?
线程间的通信方式有那些?
线程,进程和协程是否有自己独立的堆区和栈区?
什么是PCB?
分页和分段的区别是什么?
为什么有了进程还需要线程和协程?
外中断和内中断有什么区别?
什么是僵尸进程?
linux 服务器
32位系统一个进程最多有多少堆内存
五种I/O 模式:阻塞I/O,非阻塞 I/O,I/O 多路复用,信号驱动 I/O,异步 I/O
select 模型和 poll 模型,epoll模型
socket服务端的实现,select和epoll的区别(必问)
epoll哪些触发模式,有啥区别?
用户态和内核态的区别
linux文件系统:inode,inode存储了哪些东西,目录名,文件名存在哪里
分段和分页的区别有那些?
进程终止的方式有那些?
软中断和硬中断分别指的是什么
同步,异步,阻塞和非阻塞的概念
如果发现自己的Linux服务器负载过高,应该怎么排查原因呢?
NGINX在Linux上是如何工作的?简单描述一下
Linux上有个二进制程序一直在运行,我修改代码置换重新编译把原来的二进制程序覆盖了,会怎么样?
计算机网络
OSI七层模型分别是?各自的功能分别是什么?

为什么需要三次握手,两次不行?

TCP和UDP区别

TCP和UDP各自的有点

TCP和UDP的首部长什么样子

TCP和UDP头部字节定义

TCP和UDP三次握手和四次挥手状态及消息类型

time_wait,close_wait状态产生原因,keepalive

什么是滑动窗口,超时重传

列举你所知道的tcp选项

socket什么情况下可读?

connect会阻塞,怎么解决?(必考必问)

keepalive是什么?如何使用?

长连接和短连接

UDP中使用connect的好处

DNS和HTTP协议,HTTP请求方式

SYN队列和ACCEPT队列

SYN队列溢出了怎么办

什么是数字签名?

什么是数字证书?

什么是大小端,他在计算机网络中都有什么应用呢

局域网的IP分配策略是什么?它是怎么实现的?

在TCP三次握手的时候,如果网络情况非常好且百分百不会发生拥塞,不会重传,不会有历史链接问题,那么三次握手可以改为两次吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant