Skip to content

[CPP] 知识点QA #51

@Sphinxes0o0

Description

@Sphinxes0o0

编程语言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三次握手的时候,如果网络情况非常好且百分百不会发生拥塞,不会重传,不会有历史链接问题,那么三次握手可以改为两次吗?

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions